Index of /~zf/flex
2.6 Patches for unified async I/O and user-level scheduling
libpatches/ libaio patches (against libaio-0.3.99)
kernel/patches kernel patch (against 2.6.8.1)
tests/ test programs and microbench marks
To run,
1. Make sure libepoll is installed
(http://www.xmailserver.org/linux-patches/nio-improve.html, bottom of
the page)
2. Apply the patches in kernel/patches. Read the 'series' file for
the order to apply. Compile and install the patched kernel.
3. Apply patches in libpatches/ to libaio 0.3.99, available at
ftp://fr2.rpmfind.net/linux/fedora/core/development/SRPMS/libaio-0.3.99-3.src.rpm
Compile and install the patched libaio.
4. Go to tests/. Make and run the tests.
A list of stuff currently implemented (in the order of application),
o epoll_over_aio.patch: A unified event queue for disk, network and
other events (e.g. page fault completion). Kernel changes are
implemented to deliver both AIO and epoll events through the same
event queue. See tests/epio_test.c and tests/pipetest.c. pipetest is
adapted from the epoll pipetest micro-benchmark.
o epoll_over_aio_lockless.patch: Mmapped, lockless, fast event reaping
(based on Kenneth Chen's patch)
o pagefault_notification.patch: User-level page fault handling. See
tests/pagefault.c for usage example
o io_submit_try.patch (broken): Semi-asynchronous I/O using
io_submit_try(). See tests/trysubmit.c
Feng Zhou
Modified: 2/2/2005