<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/vm/vm_object.c, branch releng/5.3</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F5.3</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F5.3'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2004-08-02T00:18:36Z</updated>
<entry>
<title>* Add a "how" argument to uma_zone constructors and initialization functions</title>
<updated>2004-08-02T00:18:36Z</updated>
<author>
<name>Brian Feldman</name>
<email>green@FreeBSD.org</email>
</author>
<published>2004-08-02T00:18:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b23f72e98ae8164c07be4b3780a0b83e094844cf'/>
<id>urn:sha1:b23f72e98ae8164c07be4b3780a0b83e094844cf</id>
<content type='text'>
  so that they know whether the allocation is supposed to be able to sleep
  or not.
* Allow uma_zone constructors and initialation functions to return either
  success or error.  Almost all of the ones in the tree currently return
  success unconditionally, but mbuf is a notable exception: the packet
  zone constructor wants to be able to fail if it cannot suballocate an
  mbuf cluster, and the mbuf allocators want to be able to fail in general
  in a MAC kernel if the MAC mbuf initializer fails.  This fixes the
  panics people are seeing when they run out of memory for mbuf clusters.
* Allow debug.nosleepwithlocks on WITNESS to be disabled, without changing
  the default.

Both bmilekic and jeff have reviewed the changes made to make failable
zone allocations work.
</content>
</entry>
<entry>
<title>Fix handling of msync(2) for character special files.</title>
<updated>2004-07-30T11:08:02Z</updated>
<author>
<name>Doug Rabson</name>
<email>dfr@FreeBSD.org</email>
</author>
<published>2004-07-30T11:08:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=874f013517ffdfe671b963e792c867bb47c90405'/>
<id>urn:sha1:874f013517ffdfe671b963e792c867bb47c90405</id>
<content type='text'>
Submitted by: nvidia
</content>
</entry>
<entry>
<title>Correct a very old error in both vm_object_madvise() (originating in</title>
<updated>2004-07-28T18:23:08Z</updated>
<author>
<name>Alan Cox</name>
<email>alc@FreeBSD.org</email>
</author>
<published>2004-07-28T18:23:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=56e0670fdc7a52b9984a90f6a748ba010c0b79aa'/>
<id>urn:sha1:56e0670fdc7a52b9984a90f6a748ba010c0b79aa</id>
<content type='text'>
vm/vm_object.c revision 1.88) and vm_object_sync() (originating in
vm/vm_map.c revision 1.36): When descending a chain of backing objects,
both use the wrong object's backing offset.  Consequently, both may
operate on the wrong pages.

Quoting Matt, "This could be responsible for all of the sporatic madvise
oddness that has been reported over the years."

Reviewed by:	Matt Dillon
</content>
</entry>
<entry>
<title>Remove spl calls.</title>
<updated>2004-07-25T19:28:10Z</updated>
<author>
<name>Alan Cox</name>
<email>alc@FreeBSD.org</email>
</author>
<published>2004-07-25T19:28:10Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=9b45f81502ea32ca9e5602a757393b250b4a0f1c'/>
<id>urn:sha1:9b45f81502ea32ca9e5602a757393b250b4a0f1c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make the code and comments for vm_object_coalesce() consistent.</title>
<updated>2004-07-25T07:48:47Z</updated>
<author>
<name>Alan Cox</name>
<email>alc@FreeBSD.org</email>
</author>
<published>2004-07-25T07:48:47Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=57a21aba930b1b31247f3b74d84334cd5dd90d9b'/>
<id>urn:sha1:57a21aba930b1b31247f3b74d84334cd5dd90d9b</id>
<content type='text'>
</content>
</entry>
<entry>
<title> - Change uma_zone_set_obj() to call kmem_alloc_nofault() instead of</title>
<updated>2004-07-22T19:44:49Z</updated>
<author>
<name>Alan Cox</name>
<email>alc@FreeBSD.org</email>
</author>
<published>2004-07-22T19:44:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5285558ac2d0c7bb889d962c3d270463ee921ce0'/>
<id>urn:sha1:5285558ac2d0c7bb889d962c3d270463ee921ce0</id>
<content type='text'>
   kmem_alloc_pageable().  The difference between these is that an errant
   memory access to the zone will be detected sooner with
   kmem_alloc_nofault().

The following changes serve to eliminate the following lock-order
reversal reported by witness:

 1st 0xc1a3c084 vm object (vm object) @ vm/swap_pager.c:1311
 2nd 0xc07acb00 swap_pager swhash (swap_pager swhash) @ vm/swap_pager.c:1797
 3rd 0xc1804bdc vm object (vm object) @ vm/uma_core.c:931

There is no potential deadlock in this case.  However, witness is unable
to recognize this because vm objects used by UMA have the same type as
ordinary vm objects.  To remedy this, we make the following changes:

 - Add a mutex type argument to VM_OBJECT_LOCK_INIT().
 - Use the mutex type argument to assign distinct types to special
   vm objects such as the kernel object, kmem object, and UMA objects.
 - Define a static swap zone object for use by UMA.  (Only static
   objects are assigned a special mutex type.)
</content>
</entry>
<entry>
<title>Initialize result-&gt;backing_object_offset before linking result onto the list of</title>
<updated>2004-06-28T20:26:35Z</updated>
<author>
<name>Tor Egge</name>
<email>tegge@FreeBSD.org</email>
</author>
<published>2004-06-28T20:26:35Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=9174ca7ba352135f98a6430dc3b09a4740948bce'/>
<id>urn:sha1:9174ca7ba352135f98a6430dc3b09a4740948bce</id>
<content type='text'>
vm objects shadowing source in vm_object_shadow().  This closes a race where
vm_object_collapse() could be called with a partially uninitialized object
argument causing symptoms that looked like hardware problems, e.g.  signal 6,
10, 11 or a /bin/sh busy-waiting for a nonexistant child process.
</content>
</entry>
<entry>
<title>MFS: vm_map.c rev 1.187.2.27 through 1.187.2.29, fix MS_INVALIDATE</title>
<updated>2004-05-25T18:40:53Z</updated>
<author>
<name>Dag-Erling Smørgrav</name>
<email>des@FreeBSD.org</email>
</author>
<published>2004-05-25T18:40:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c53f7ace3a6010a0a99b4bffa65139c74a0cb5c1'/>
<id>urn:sha1:c53f7ace3a6010a0a99b4bffa65139c74a0cb5c1</id>
<content type='text'>
semantics but provide a sysctl knob for reverting to old ones.
</content>
</entry>
<entry>
<title>Remove advertising clause from University of California Regent's license,</title>
<updated>2004-04-06T20:15:37Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2004-04-06T20:15:37Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=05eb3785e755044e8f30f064b5be4fe1ac788dbd'/>
<id>urn:sha1:05eb3785e755044e8f30f064b5be4fe1ac788dbd</id>
<content type='text'>
per letter dated July 22, 1999.

Approved by: core
</content>
</entry>
<entry>
<title>Implement a work around for the deadlock avoidance case in</title>
<updated>2004-03-08T03:54:36Z</updated>
<author>
<name>Alan Cox</name>
<email>alc@FreeBSD.org</email>
</author>
<published>2004-03-08T03:54:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a7d8612155be0dd2ed8d2e475b599da3d7f34645'/>
<id>urn:sha1:a7d8612155be0dd2ed8d2e475b599da3d7f34645</id>
<content type='text'>
vm_object_deallocate() so that it doesn't spin forever either.

Submitted by:	bde
</content>
</entry>
</feed>
