Messages in this thread | | | From | Jens Axboe <> | Subject | [PATCH 0/6] IO context sharing | Date | Tue, 22 Jan 2008 10:49:15 +0100 |
| |
Hi,
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 IO context.
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 <knikanth@novell.com>, but then later completely reworked by me.
The patches are against latest -git.
-- Jens Axboe
| |