File:  [NetBSD Developer Wiki] / wikisrc / projects / project / buffer-flowcontrol.mdwn
Revision 1.2: download - view: text, annotated - select for diffs
Fri Aug 26 07:41:58 2016 UTC (5 years, 4 months ago) by dholland
Branches: MAIN
CVS tags: HEAD
New title and better description. Also, suggest developing a buffer
tagging scheme to help make this work, as it will probably also help
with readahead processing.

[[!template id=project

title="Buffer queue flow control"


duration="2 months"

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

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 <> software: FreeBSD-CVSweb