summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormckusick <mckusick@FreeBSD.org>2001-12-14 10:49:15 +0000
committermckusick <mckusick@FreeBSD.org>2001-12-14 10:49:15 +0000
commita120c6ba29c902e0b7d394baa2a39d67f890a15d (patch)
tree6a14ebfed9e1bae33e99523f8b5761f21bb689b9
parentff31678819bc9a191419b0879924b37550ce7c2c (diff)
downloadFreeBSD-src-a120c6ba29c902e0b7d394baa2a39d67f890a15d.zip
FreeBSD-src-a120c6ba29c902e0b7d394baa2a39d67f890a15d.tar.gz
Add disk I/O scheduling for positively niced processes.
When a positively niced process requests a disk I/O, make it wait for its nice value of ticks before scheduling its I/O request if there are any other processes with I/O requests in the disk queue. For all the gory details, see the ``Running fsck in the Background'' paper in the Usenix BSDCon 2002 Conference Proceedings, pages 55-64.
-rw-r--r--sys/sys/buf.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/sys/buf.h b/sys/sys/buf.h
index dbac38b..efeaec1 100644
--- a/sys/sys/buf.h
+++ b/sys/sys/buf.h
@@ -94,7 +94,9 @@ extern struct buf_ops buf_ops_bio;
*/
struct buf {
/* XXX: b_io must be the first element of struct buf for now /phk */
+ /* XXX: if you change this, fix BIOTOBUF macro below */
struct bio b_io; /* "Builtin" I/O request. */
+#define BIOTOBUF(biop) ((struct buf *)(biop))
#define b_bcount b_io.bio_bcount
#define b_blkno b_io.bio_blkno
#define b_caller1 b_io.bio_caller1
OpenPOWER on IntegriCloud