git: kernel - SWAP CACHE part 12/many - Add swapcache cleanup st

看板DFBSD_commit作者時間16年前 (2010/02/07 02:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit 00a3fdca11527a9e70b79270e03d979267907ca4 Author: Matthew Dillon <dillon@apollo.backplane.com> Date: Sat Feb 6 08:57:05 2010 -0800 kernel - SWAP CACHE part 12/many - Add swapcache cleanup state * Add a small state machine and hysteresis to flip between swapcache writing and swapcache cleaning. The swapcache is written to until (unless) it hits 75% use. If this occurs it switches to cleaning mode to get rid of swapcache pages until it gets down to 70%. While in cleaning mode burst accumulation still occurs. Then it flips back. Currently the cleaning mode tries to choose swap meta-blocks which are wholely swapped (have no VM pages), running linearly through the VM object list in order to try to clean contiguous areas of the swapcache. The idea is to reduce fragmentation that would lead to excessive disk seeking. At the same time the limited cleaning run (only 5% of the swap cache) should prevent any large-scale excessive deletion of the swapcache. * Add a new VM object type, OBJT_MARKER, which may be used by iterators running through the vm_object_list. Summary of changes: .../linux/i386/linprocfs/linprocfs_misc.c | 5 +- sys/emulation/linux/linux_misc.c | 5 +- sys/vm/swap_pager.c | 75 +++++ sys/vm/swap_pager.h | 2 + sys/vm/vm_meter.c | 7 +- sys/vm/vm_object.c | 4 + sys/vm/vm_object.h | 3 +- sys/vm/vm_swapcache.c | 321 +++++++++++++------- 8 files changed, 307 insertions(+), 115 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/00a3fdca11527a9e70b79270e03d979267907ca4 -- DragonFly BSD source repository
文章代碼(AID): #1BRRMgup (DFBSD_commit)