| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Change all in-tree consumers to include <sys/limits.h>
Discussed on: standards@
Partially submitted by: Craig Rodrigues <rodrigc@attbi.com>
|
|
|
|
| |
- Assert that the vm_object is locked in swap_pager_isswapped().
|
|
|
|
| |
provides storage for the vm_object.
|
|
|
|
|
| |
- 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().
|
|
|
|
|
| |
- In vm_object_deallocate(), lock the child when removing the parent
from the child's shadow list.
|
|
|
|
|
| |
(2) remove a pointless assertion, and (3) make a trivial change to a
comment.
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
|
|
|
|
| |
- Make vm_object_pip_sleep() static.
- Lock the vm_object when performing vm_object_pip_wait().
|
|
|
|
| |
swap_pager_freespace().
|
| |
|
|
|
|
|
|
| |
fork1() and never changes.
- The proc lock is enough to cover reading p_state, so push down sched_lock
into the PRS_NORMAL case of the switch on p_state.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Remove the Giant required from vm_page_free_toq(). (Any locking
errors will be caught by vm_page_remove().)
This remedies a panic that occurred when kmem_malloc(NOWAIT) performed
without Giant failed to allocate the necessary pages.
Reported by: phk
|
| |
|
|
|
|
|
|
| |
- Add a parameter to vm_pageout_flush() that tells vm_pageout_flush()
whether its caller has locked the vm_object. (This is a temporary
measure to bootstrap vm_object locking.)
|
|
|
|
| |
Submitted by: bde (partially)
|
|
|
|
| |
vm_daemon(). We don't need to hold sched_lock as long now as a result.
|
|
|
|
| |
safe to do so.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
race where a thread could assume that a process was swapped in by
PHOLD() when it actually wasn't fully swapped in yet.
- In faultin(), always msleep() if PS_SWAPPINGIN is set instead of doing
this check after bumping p_lock in the PS_INMEM == 0 case. Also,
sched_lock is only needed for setting and clearning swapping PS_*
flags and the swap thread inhibitor.
- Don't set and clear the thread swap inhibitor in the same loops as the
pmap_swapin/out_thread() since we have to do it under sched_lock.
Instead, mimic the treatment of the PS_INMEM flag and use separate loops
to set the inhibitors when clearing PS_INMEM and clear the inhibitors
when setting PS_INMEM.
- swapout() now returns with the proc lock held as it holds the lock
while adjusting the swapping-related PS_* flags so that the proc lock
can be used to test those flags.
- Only use the proc lock to check the swapping-related PS_* flags in
several places.
- faultin() no longer requires sched_lock to be held by callers.
- Rename PS_SWAPPING to PS_SWAPPINGOUT to be less ambiguous now that we
have PS_SWAPPINGIN.
|
|
|
|
|
|
|
| |
- Weaken the assertion in vm_page_insert() to require Giant only if the
vm_object isn't locked.
Reported by: "Ilmar S. Habibulin" <ilmar@watson.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
called without Giant; and obj_alloc() in turn calls vm_page_alloc()
without Giant. This causes an assertion failure in vm_page_alloc().
Fortunately, obj_alloc() is now MPSAFE. So, we need only clean up
some assertions.
- Weaken the assertion in vm_page_lookup() to require Giant only
if the vm_object isn't locked.
- Remove an assertion from vm_page_alloc() that duplicates a check
performed in vm_page_lookup().
In collaboration with: gallatin, jake, jeff
|
| |
|
|
|
|
|
|
|
| |
vm_object_pip_add() and vm_object_pip_wakeup().
- Remove GIANT_REQUIRED from vm_object_pip_subtract() and
vm_object_pip_subtract().
- Lock the vm_object when performing vm_object_page_remove().
|
|
|
|
| |
vm_object_pip_wakeup().
|
| |
|
|
|
|
| |
- Merge two identical cases in a switch statement.
|
| |
|
|
|
|
| |
- Remove an unnecessary variable.
|
| |
|
| |
|
|
|
|
| |
- Assert that the vm_object lock is held in vm_object_pip_subtract().
|
|
|
|
|
| |
- Assert that the vm_object lock is held in vm_object_pip_wakeupn().
- Add a new macro VM_OBJECT_LOCK_ASSERT().
|
|
|
|
|
|
| |
to use the new macros.
o Remove unnecessary increment and decrement of the vm_object's
reference count in vm_map_clean().
|
| |
|
| |
|
|
|
|
|
|
|
| |
should allow the use of INTR_MPSAFE network drivers.
Tested by: njl
Glanced at by: jeff
|
|
|
|
| |
p_flag needs the lock.
|
|
|
|
|
| |
Submitted by: hmp
Discussed with: bde
|
|
|
|
| |
Discussed with: bde
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|