diff options
author | 2008-06-10 20:14:36 +0000 | |
---|---|---|
committer | 2008-06-10 20:14:36 +0000 | |
commit | 30ab7dc4b7d5ee681b6f2fff0471c66b7178a51a (patch) | |
tree | 201e7de25cd00b8c73dc838662dc445274e2b38b /sys/kern/subr_disk.c | |
parent | when walking the entire state table it makes much more sense to walk (diff) | |
download | wireguard-openbsd-30ab7dc4b7d5ee681b6f2fff0471c66b7178a51a.tar.xz wireguard-openbsd-30ab7dc4b7d5ee681b6f2fff0471c66b7178a51a.zip |
Buffer cache revamp
1) remove multiple size queues, introduced as a stopgap.
2) decouple pages containing data from their mappings
3) only keep buffers mapped when they actually have to be mapped
(right now, this is when buffers are B_BUSY)
4) New functions to make a buffer busy, and release the busy flag
(buf_acquire and buf_release)
5) Move high/low water marks and statistics counters into a structure
6) Add a sysctl to retrieve buffer cache statistics
Tested in several variants and beat upon by bob and art for a year. run
accidentally on henning's nfs server for a few months...
ok deraadt@, krw@, art@ - who promises to be around to deal with any fallout
Diffstat (limited to 'sys/kern/subr_disk.c')
-rw-r--r-- | sys/kern/subr_disk.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/subr_disk.c b/sys/kern/subr_disk.c index 92a267e9c1d..fe111450c96 100644 --- a/sys/kern/subr_disk.c +++ b/sys/kern/subr_disk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: subr_disk.c,v 1.74 2008/05/23 00:51:33 krw Exp $ */ +/* $OpenBSD: subr_disk.c,v 1.75 2008/06/10 20:14:36 beck Exp $ */ /* $NetBSD: subr_disk.c,v 1.17 1996/03/16 23:17:08 christos Exp $ */ /* @@ -399,7 +399,7 @@ readdoslabel(struct buf *bp, void (*strat)(struct buf *), /* read boot record */ bp->b_blkno = part_blkno; bp->b_bcount = lp->d_secsize; - bp->b_flags = B_BUSY | B_READ; + bp->b_flags = B_BUSY | B_READ | B_RAW; (*strat)(bp); if (biowait(bp)) { /*wrong*/ if (partoffp) |