Date: Mon, 18 Feb 2002 21:57:22 -0500 (EST) From: Jeff Roberson <jroberson@chesapeake.net> To: arch@freebsd.org Subject: Prioritized bio patches. Message-ID: <20020218214128.C12686-100000@mail.chesapeake.net>
next in thread | raw e-mail | index | archive | help
I have developed an extension to the bio queue interface to support priorities. It may be useful in place of the nice value related sleep that is currently in bioqdisksort. There are 6 queues in each bio queue head. The first is the default sorted queue. It is used if the bio priority (bio_prio) is BIO_PRIO_DEFAULT. Then there are 5 unsorted queues for use with different nice levels. The priority is automatically picked at insert time based on the process nice value. Un-nice processes still use the default IO queue to prevent starvation. The lower priority IO is not sorted because it may be interrupted at any time by higher priority io, thus defeating the sort. This also saves a bit of structure bloat and processing time. The main advantage over the current solution is that, if the system has spare IO cycles, nice processes can run at full speed. Also, this was implemented in such a way that it is completely transparent to users of the bioq interfaces. Since cam keeps a deep queue of IOs it may want to adjust it's priorities for the IO as well. This would prevent a possible delay for high priority IO while cam works through a queue full of low priority IO. As it is though the response time should be reasonable. This patch does not introduce any higher priority levels. It would be easy to do, but I don't see any demand for it right now. The patch is available at http://www.chesapeake.net/~jroberson/prio.patch Thanks, Jeff To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020218214128.C12686-100000>