|| ||Jens Axboe <firstname.lastname@example.org>|
|| ||[PATCH 0/6] IO context sharing|
|| ||Tue, 22 Jan 2008 10:49:15 +0100|
Today io contexts are per-process and define the (surprise) io context
of that process. In some situations it would be handy if several
processes share an IO context. With syslets it's especially crucial that
the threads working on behalf of the parent process are seen as the same
IO context. That goes from both a fairness and performance point of
view, since IO schedulers like AS and CFQ base decisions on what the
IO context state is. This patchset adds support for processes sharing a
single io context and also adds a CLONE_IO flag to denote sharing of
In the block git repo here's a syslet-share branch that merges these
patches with the latest syslet patches posted from Zach and sets
CLONE_IO for syslet threads. The result is that performance of AS
and CFQ is as good as it would have been had a single process issued
the IO async through libaio.
This work was originally started by Nikanth Karthikesan
<email@example.com>, but then later completely reworked by me.
The patches are against latest -git.