public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Syslets, Threadlets, generic AIO support, v6
@ 2007-05-29 21:27 Zach Brown
  2007-05-29 21:49 ` Linus Torvalds
                   ` (2 more replies)
  0 siblings, 3 replies; 71+ messages in thread
From: Zach Brown @ 2007-05-29 21:27 UTC (permalink / raw)
  To: linux-kernel
  Cc: Ingo Molnar, Linus Torvalds, Arjan van de Ven, Christoph Hellwig,
	Andrew Morton, Alan Cox, Ulrich Drepper, Evgeniy Polyakov,
	David S. Miller, Suparna Bhattacharya, Davide Libenzi, Jens Axboe,
	Thomas Gleixner

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!

 - z

^ permalink raw reply	[flat|nested] 71+ messages in thread
* Re: Syslets, Threadlets, generic AIO support, v6
@ 2007-05-31  8:15 Albert Cahalan
  2007-05-31  9:50 ` Ingo Molnar
  0 siblings, 1 reply; 71+ messages in thread
From: Albert Cahalan @ 2007-05-31  8:15 UTC (permalink / raw)
  To: linux-kernel, mingo, torvalds, jeff, zach.brown, arjan, hch,
	drepper, akpm, alan

Ingo Molnar writes:

> looking over the list of our new generic APIs (see further below) i
> think there are three important things that are needed for an API to
> become widely used:
>
>  1) it should solve a real problem (ha ;-), it should be intuitive to
>     humans and it should fit into existing things naturally.
>
>  2) it should be ubiquitous. (if it's about IO it should cover block IO,
>     network IO, timers, signals and everything) Even if it might look
>     silly in some of the cases, having complete, utter, no compromises,
>     100% coverage for everything massively helps the uptake of an API,
>     because it allows the user-space coder to pick just one paradigm
>     that is closest to his application and stick to it and only to it.
>
>  3) it should be end-to-end supported by glibc.

4) At least slightly portable.

Anything supported by any similar OS is already ahead, even if it
isn't the perfect API of our dreams. This means kqueue and doors.

If it's not on any BSD or UNIX, then most app developers won't
touch it. Worse yet, it won't appear in programming books, so even
the Linux-only app programmers won't know about it.

Running ideas by the FreeBSD and OpenSolaris developers wouldn't
be a bad idea. Agreement leads to standardization, which leads to
interfaces getting used.

BTW, wrapper libraries that bury the new API under a layer of
gunk are not helpful. One might as well just use the old API.

^ permalink raw reply	[flat|nested] 71+ messages in thread

end of thread, other threads:[~2007-05-31 10:51 UTC | newest]

Thread overview: 71+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-29 21:27 Syslets, Threadlets, generic AIO support, v6 Zach Brown
2007-05-29 21:49 ` Linus Torvalds
2007-05-29 22:49   ` Zach Brown
2007-05-29 22:16 ` Jeff Garzik
2007-05-29 23:09   ` Zach Brown
2007-05-29 23:20     ` Ulrich Drepper
2007-05-30  1:11       ` Dave Jones
2007-05-30 17:08         ` Zach Brown
2007-05-30  7:26     ` Ingo Molnar
2007-05-30  7:20   ` Ingo Molnar
2007-05-30  7:31     ` Ulrich Drepper
2007-05-30  8:42       ` Ingo Molnar
2007-05-30  8:51         ` Evgeniy Polyakov
2007-05-30  9:05           ` Ingo Molnar
2007-05-30 15:16         ` Linus Torvalds
2007-05-30 15:39         ` Ulrich Drepper
2007-05-30 19:40         ` Davide Libenzi
2007-05-30 19:55           ` Ulrich Drepper
2007-05-30 20:00           ` Linus Torvalds
2007-05-30 20:21             ` Davide Libenzi
2007-05-30 20:31             ` Eric Dumazet
2007-05-30 20:44               ` Linus Torvalds
2007-05-30 21:53                 ` Eric Dumazet
2007-05-30 21:31               ` Davide Libenzi
2007-05-30 21:16             ` Ulrich Drepper
2007-05-30 21:27               ` Linus Torvalds
2007-05-30 21:47                 ` Ulrich Drepper
2007-05-30 22:06                   ` Davide Libenzi
2007-05-30 21:48                 ` Davide Libenzi
2007-05-30 22:01                   ` Linus Torvalds
2007-05-31  6:13                     ` Ingo Molnar
2007-05-31  7:35                       ` Eric Dumazet
2007-05-31  9:26                         ` Ingo Molnar
2007-05-31  9:02                       ` Ingo Molnar
2007-05-31 10:41                         ` Eric Dumazet
2007-05-31 10:50                           ` Ingo Molnar
2007-05-31  9:32                       ` Ingo Molnar
2007-05-31  9:34                         ` Jens Axboe
2007-05-30 22:09                   ` Eric Dumazet
2007-05-30 21:51                 ` David M. Lloyd
2007-05-30 22:24                 ` William Lee Irwin III
2007-05-30 21:38               ` Jeremy Fitzhardinge
2007-05-30 21:39               ` Davide Libenzi
2007-05-30 21:36             ` Jeremy Fitzhardinge
2007-05-30 21:44               ` Linus Torvalds
2007-05-30 21:48                 ` Linus Torvalds
2007-05-30 21:54                   ` Jeremy Fitzhardinge
2007-05-30 22:27             ` Matt Mackall
2007-05-30 22:38               ` William Lee Irwin III
2007-05-30  8:32     ` Evgeniy Polyakov
2007-05-30  8:54       ` Ingo Molnar
2007-05-30  9:30         ` Evgeniy Polyakov
2007-05-30  9:28     ` Jeff Garzik
2007-05-30 13:02       ` Ingo Molnar
2007-05-30 13:20         ` Ingo Molnar
2007-05-30 15:31       ` Linus Torvalds
2007-05-30 16:09         ` Ingo Molnar
2007-05-30 17:57           ` Jens Axboe
2007-05-30 19:05           ` Mark Lord
2007-05-30 19:10             ` Jens Axboe
2007-05-30 19:15             ` Linus Torvalds
2007-05-30 19:32               ` Jens Axboe
2007-05-30 20:07               ` Eric Dumazet
2007-05-30 20:31                 ` Linus Torvalds
2007-05-30 20:46                   ` Eric Dumazet
2007-05-30 19:52           ` Davide Libenzi
2007-05-30  7:40 ` Jens Axboe
2007-05-30 16:55   ` Zach Brown
2007-05-30 17:33     ` Jens Axboe
  -- strict thread matches above, loose matches on Subject: below --
2007-05-31  8:15 Albert Cahalan
2007-05-31  9:50 ` Ingo Molnar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox