]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Adopt the deferring of object deallocation for the deleted map entries
authorkib <kib@FreeBSD.org>
Sat, 18 Sep 2010 15:03:31 +0000 (15:03 +0000)
committerkib <kib@FreeBSD.org>
Sat, 18 Sep 2010 15:03:31 +0000 (15:03 +0000)
commitd25cc0d8783c134a0201e3b7b1a2f8635afd54bb
tree8328cdf8301c6d159bb10e1a5a03b15f0b932857
parent7066648caf203091037ddc9dc452bcb0ef9aad45
Adopt the deferring of object deallocation for the deleted map entries
on map unlock to the lock downgrade and later read unlock operation.

System map entries cannot be backed by OBJT_VNODE objects, no need to
defer deallocation for them. Map entries from user maps do not require
the owner map for deallocation, and can be accumulated in the
thread-local list for freeing when a user map is unlocked.

Move the collection of entries for deferred reclamation into
vm_map_delete(). Create helper vm_map_process_deferred(), that is
called from locations where processing is feasible. Do not process
deferred entries in vm_map_unlock_and_wait() since map_sleep_mtx is
held.

Reviewed by: alc, rstone (previous versions)
Tested by: pho
MFC after: 2 weeks
sys/sys/proc.h
sys/vm/vm_map.c
sys/vm/vm_map.h