Re: Syslets, Threadlets, generic AIO support, v6

From: Jeff Garzik
Date: Tue May 29 2007 - 18:17:39 EST


Zach Brown wrote:
I'm pleased to announce the availability of version 6 of the syslet subsystem.
Ingo and I agreed that I'll handle syslet releases while he's busy with CFS. I
copied the cc: list from Ingo's v5 announcement. If you'd like to be dropped
(or added), please let me know.

The v6 patch series against 2.6.21 can be downloaded from:

http://oss.oracle.com/~zab/syslets/v6/

Example applications and previous syslet releases can be found at:

http://people.redhat.com/~mingo/syslet-patches/
The syslet subsystem aims to provide user-space with an efficient interface for
managing the asynchronus submission and completion of existing system calls.

The only changes since v5 are small changes that I made to support the
experimental aio patch described below.

My syslet subsystem todo list is as follows, in no particular order:

- replace WARN_ON() calls with error handling or avoidance
- split the x86_64-async.patch into more specific patches
- investigate integration with ptrace
- investigate rare ./syslet-test cpu spinning
- provide distro kernel rpms and documentation for developers
- compat design problems, still? http://lkml.org/lkml/2007/3/7/523

Included in this patch series is an experimental patch which reworks fs/aio.c
to reuse the syslet subsystem to process iocb requests from user space. The
intent of this work is to simplify the code and broaden aio functionality.

Many issues need to be addressed before this aio work could be merged:

- support cancellation by sending signals to async_threads - figure out what to do about signals from handlers, like SIGXFSZ
- verify that heavy loads do not consume excessive cpu or memory - concurrent dio writes
- cfq gets confused, share io_context amongst threads?
- restrict allowed operations like .aio_{r,w} methods used to

More details on this work in progress can be found in the patch.

Any and all feedback is welcome and encouraged!

You should pick up the kevent work :)

Having async request and response rings would be quite useful, and most closely match what is going on under the hood in the kernel and hardware.

Jeff


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/