git: HAMMER VFS - The backend flusher now sorts inodes

看板DFBSD_commit作者時間16年前 (2009/11/03 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit ff003b11ff22dd10f420eba8a38b7c0838d79acd Author: Matthew Dillon <dillon@apollo.backplane.com> Date: Mon Nov 2 09:11:46 2009 -0800 HAMMER VFS - The backend flusher now sorts inodes * Change the tailq of inodes in a flush group to a red-black tree. The flusher now processes inodes in sorted order and breaks them up into larger sets for concurrent flushing. The flusher threads are thus more likely to concurrently process inodes which are fairly far apart in the B-Tree. This greatly reduces lock interference between flusher threads. However, B-Tree deadlocks are still an issue between inodes undergoing flushes and front-end access operations. This can be observed by noting periods of low dev-write activity in 'hammer iostats 1' output during a blogbench test. The hammer-S* kernel threads will likely be in a 'hmrdlk' state at the same time. * Add sysctl vfs.hammer.limit_reclaim to set the maximum number of inodes with no vnode associations, default 4000. NOTE: For debugging only, setting this value too high will blow out the kmalloc pool. Summary of changes: sys/vfs/hammer/hammer.h | 17 ++++++++++------- sys/vfs/hammer/hammer_flusher.c | 23 +++++++++++++++++------ sys/vfs/hammer/hammer_inode.c | 16 ++++++++-------- sys/vfs/hammer/hammer_vfsops.c | 7 +++++-- 4 files changed, 40 insertions(+), 23 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/ff003b11ff22dd10f420eba8a38b7c0838d79acd -- DragonFly BSD source repository
文章代碼(AID): #1AxnvkU3 (DFBSD_commit)