kernel - Fix buffer cache deadlock due to multiple buffer cache sizes
authorMatthew Dillon <dillon@apollo.backplane.com>
Tue, 20 Mar 2012 04:14:13 +0000 (21:14 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Tue, 20 Mar 2012 04:14:13 +0000 (21:14 -0700)
commiteafcc44d1aa2909f37f755dafdddf285eae7a014
treeaa778974d3be4f373072d3fbd805d35358eea763
parentcf83ee2c9f055dbfa3c0574a1a15ba9b9561af52
kernel - Fix buffer cache deadlock due to multiple buffer cache sizes

* The buffer daemon was triggering off of dirtybufspace[hw], comparing
  it against bufspace.  However, bufspace is an aggregation of the
  total buffer kva reserved, not the dirty count based on b_bufsize.

* Add dirtykvasize to track the dirty space in terms of the kva reservation
  and change the buffer daemons to use that instead.

* systat and other displays still use the bufsize, which is a more
  accurate indicator for human consumption.
sys/kern/kern_iosched.c
sys/kern/vfs_bio.c
sys/sys/buf.h