git: kernel - split the pbuf subsystem into two (kva and non-kva

看板DFBSD_commit作者時間15年前 (2010/08/16 03:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit 9a82e536c033562735802be193d648f04ed8bf6d Author: Matthew Dillon <dillon@apollo.backplane.com> Date: Sun Aug 15 11:57:53 2010 -0700 kernel - split the pbuf subsystem into two (kva and non-kva) Most pbufs do not require kva reservations. Split the API to provide pbufs without kva reservations out of a much larger pool of pbufs, fixing deadlock issues with the DM subsystem. Note in particular that the hammer reblocker can eat upwards of 5000 pbufs when operating on multi-layered DM-based storage, which blows away the 256 pbufs normally available with kva reservations that the old API had. * Getpbuf() / trypbuf() now return pbufs without KVA reservations. * Add getpbuf_kva() and trypbuf_kva() to get pbufs with KVA reservations. * Fixes pbuf deadlocks in the low level I/O subsystem, particularly DM crypt, stripe, and mirror. Summary of changes: sys/bus/cam/cam_periph.c | 2 +- sys/kern/kern_dsched.c | 9 +++ sys/kern/kern_physio.c | 2 +- sys/kern/vfs_aio.c | 2 +- sys/kern/vfs_bio.c | 2 + sys/kern/vfs_cluster.c | 4 +- sys/sys/buf.h | 2 + sys/vfs/ufs/ffs_rawread.c | 4 +- sys/vm/swap_pager.c | 6 +- sys/vm/vm_pager.c | 149 ++++++++++++++++++++++++++++++++++++++------ 10 files changed, 151 insertions(+), 31 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/9a82e536c033562735802be193d648f04ed8bf6d -- DragonFly BSD source repository
文章代碼(AID): #1CQ42tZi (DFBSD_commit)