[[!template id=project
title="Buffer queue flow control"
contact="""
[tech-kern](mailto:tech-kern@NetBSD.org)
"""
category="filesystems"
difficulty="hard"
duration="2 months"
description="""
Apply TCP-like flow control to processes accessing to the filesystem,
particularly writers.
That is: put them to sleep when there is "congestion", to avoid
generating enormous backlogs and provide more fair allocation of disk
bandwidth.
This is a nontrivial undertaking as the I/O path wasn't intended to
support this type of throttling. Also, the throttle should be
underneath all caching (there is nothing to be gained by throttling
cached accesses) but by that point attributing I/O actions to specific
processes is awkward.
It might be worthwhile to develop a scheme to tag buffers with the
upper-level I/O requests their pending changes came from, or something
of the sort. That would likely help with readahead processing and
other things as well as with flow control.
"""
]]
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb