summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_object.c
Commit message (Collapse)AuthorAgeFilesLines
* Don't acquire Giant in vm_object_deallocate() unless the object is vnode-alc2004-01-181-8/+12
| | | | backed.
* Revision 1.74 of vm_meter.c ("Avoid lock-order reversal") makes the releasealc2004-01-021-2/+0
| | | | | and subsequent reacquisition of the same vm object lock in vm_object_collapse() unnecessary.
* - Modify vm_object_split() to expect a locked vm object on entry andalc2003-12-301-15/+10
| | | | | return on a locked vm object on exit. Remove GIANT_REQUIRED. - Eliminate some unnecessary local variables from vm_object_split().
* - Rename vm_map_clean() to vm_map_sync(). This better reflects the factalc2003-11-091-0/+69
| | | | | | | | | | that msync(2) is its only caller. - Migrate the parts of the old vm_map_clean() that examined the internals of a vm object to a new function vm_object_sync() that is implemented in vm_object.c. At the same, introduce the necessary vm object locking so that vm_map_sync() and vm_object_sync() can be called without Giant. Reviewed by: tegge
* - Increase the scope of two vm object locks in vm_object_split().alc2003-11-021-2/+2
|
* - Introduce and use vm_object_reference_locked(). Unlikealc2003-11-021-2/+24
| | | | | | | vm_object_reference(), this function must not be used to reanimate dead vm objects. This restriction simplifies locking. Reviewed by: tegge
* - Increase the scope of two vm object locks in vm_object_collapse().alc2003-11-011-12/+4
| | | | - Remove the acquisition and release of Giant from vm_object_coalesce().
* - Modify swap_pager_copy() and its callers such that the source andalc2003-11-011-23/+6
| | | | | | destination objects are locked on entry and exit. Add comments to the callers noting that the locks can be released by swap_pager_copy(). - Remove several instances of GIANT_REQUIRED.
* - Additional vm object locking in vm_object_split()alc2003-11-011-2/+11
| | | | | - New vm object locking assertions in vm_page_insert() and vm_object_set_writeable_dirty()
* - Revert a part of revision 1.73: Make vm_object_set_flag() an inlinealc2003-10-311-6/+0
| | | | | function. This function is so trivial that inlining reduces the size of the kernel.
* - Take advantage of the swap pager locking: Eliminate the use of Giantalc2003-10-311-9/+0
| | | | | from vm_object_madvise(). - Remove excessive blank lines from vm_object_madvise().
* - Simplify vm_object_collapse()'s collapse case, reducing the numberalc2003-10-261-14/+9
| | | | | | of lock acquires and releases performed. - Move an assertion from vm_object_collapse() to vm_object_zdtor() because it applies to all cases of object destruction.
* - Increase the object lock's scope in vm_contig_launder() so that accessalc2003-10-181-1/+1
| | | | | | | | | to the object's type field and the call to vm_pageout_flush() are synchronized. - The above change allows for the eliminaton of the last parameter to vm_pageout_flush(). - Synchronize access to the page's valid field in vm_pageout_flush() using the containing object's lock.
* - Use the UMA_ZONE_VM flag on the fakepg and object zones to preventjeff2003-10-041-1/+1
| | | | | vm recursion and LORs. This may be necessary for other zones created in the vm but this needs to be verified.
* Remove GIANT_REQUIRED from vm_object_shadow().alc2003-09-171-2/+0
|
* Eliminate the use of Giant from vm_object_reference().alc2003-09-151-11/+11
|
* There is no need for an atomic increment on the vm object's generationalc2003-09-131-2/+1
| | | | | | | | count in _vm_object_allocate(). (Access to the generation count is governed by the vm object's lock.) Note: the introduction of the atomic increment in revision 1.238 appears to be an accident. The purpose of that commit was to fix an Alpha-specific bug in UMA's debugging code.
* Remove an unused variable.phk2003-08-061-3/+0
|
* Allow vm_object_reference() on kernel_object without Giant.alc2003-07-271-2/+4
|
* Don't inline very large functions.phk2003-07-221-1/+1
| | | | Gcc has silently not been doing this for a long time.
* Complete the vm object locking in vm_object_backing_scan(); specifically,alc2003-06-221-5/+12
| | | | | deal with the case where we need to sleep on a busy page with two vm object locks held.
* - Increase the scope of the vm object lock in vm_object_collapse().alc2003-06-211-3/+4
| | | | | - Assert that the vm object and its backing vm object are both locked in vm_object_qcollapse().
* Use __FBSDID().obrien2003-06-111-2/+3
|
* Don't use vm_object_set_flag() to initialize the vm object's flags.alc2003-06-091-1/+1
|
* - Properly handle the paging_in_progress case on two vm objects inalc2003-06-081-26/+16
| | | | | vm_object_deallocate(). - Remove vm_object_pip_sleep().
* Pass the vm object to vm_object_collapse() with its lock held.alc2003-06-071-8/+5
|
* - Extend the scope of the backing object's lock in vm_object_collapse().alc2003-06-051-2/+4
|
* - Add further vm object locking to vm_object_deallocate(), specifically,alc2003-06-041-2/+12
| | | | for accessing a vm object's shadows.
* - Add vm object locking to vm_object_deallocate(). (Still morealc2003-06-041-12/+15
| | | | | | changes are required.) - Remove special-case macros for kmem object locking. They are no longer used.
* Add vm object locking to vm_object_coalesce().alc2003-06-031-7/+12
|
* Change kernel_object and kmem_object to (&kernel_object_store) andalc2003-06-011-6/+3
| | | | | (&kmem_object_store), respectively. This allows the address of these objects to be resolved at link-time rather than run-time.
* Add vm object locking to vm_object_madvise().alc2003-05-311-9/+17
|
* Reduce the size of a vm object by converting its shadow list from a TAILQalc2003-05-181-22/+10
| | | | | | to a LIST. Approved by: re (rwatson)
* Give the kmem object's mutex a unique name, instead of "vm object",alc2003-05-091-1/+6
| | | | | | to avoid false reports of lock-order reversal with a system map mutex. Approved by: re (jhb)
* Lock the vm_object when performing vm_pager_deallocate().alc2003-05-061-1/+1
|
* Extend the scope of the vm_object lock in vm_object_terminate().alc2003-05-041-4/+4
|
* Lock the vm_object on entry to vm_object_vndeallocate().alc2003-05-031-1/+4
|
* - Revert kern/vfs_subr.c revision 1.444. The vm_object's size isn'talc2003-05-031-4/+6
| | | | | | | | | trustworthy for vnode-backed objects. - Restore the old behavior of vm_object_page_remove() when the end of the given range is zero. Add a comment to vm_object_page_remove() regarding this behavior. Reported by: iedowse
* Move a declaration to its proper place.alc2003-05-031-1/+0
|
* Lock the vm_object when updating its shadow list.alc2003-05-021-2/+10
|
* Simplify the removal of a shadow object in vm_object_collapse().alc2003-05-021-3/+3
|
* Extend the scope of the vm_object locking in vm_object_split().alc2003-05-011-4/+4
|
* - Update the vm_object locking in vm_object_reference().alc2003-05-011-10/+8
| | | | - Convert some dead code in vm_object_reference() into a comment.
* - Define VM_OBJECT_LOCK_INIT().alc2003-04-281-5/+4
| | | | | - Avoid repeatedly mtx_init()ing and mtx_destroy()ing the vm_object's lock using UMA's uminit callback, in this case, vm_object_zinit().
* - Tell witness that holding two or more vm_object locks is okay.alc2003-04-271-2/+4
| | | | | - In vm_object_deallocate(), lock the child when removing the parent from the child's shadow list.
* Various changes to vm_object_shadow(): (1) update the vm_object locking,alc2003-04-271-13/+16
| | | | | (2) remove a pointless assertion, and (3) make a trivial change to a comment.
* Various changes to vm_object_page_remove():alc2003-04-261-7/+7
| | | | | | | | | | - Eliminate an odd, special-case feature: if start == end == 0 then all pages are removed. Only one caller used this feature and that caller can trivially pass the object's size. - Assert that the vm_object is locked on entry; don't bother testing for a NULL vm_object. - Style: Fix lines that are longer than 80 characters.
* - Lock the vm_object on entry to vm_object_terminate().alc2003-04-261-2/+4
|
* - Convert vm_object_pip_wait() from using tsleep() to msleep().alc2003-04-261-5/+9
| | | | | - Make vm_object_pip_sleep() static. - Lock the vm_object when performing vm_object_pip_wait().
* - Extend the scope of two existing vm_object locks to coveralc2003-04-261-1/+1
| | | | swap_pager_freespace().
OpenPOWER on IntegriCloud