Files
kernel/include/linux
Davide Libenzi 9c3060bedd signal/timer/event: KAIO eventfd support example
This is an example about how to add eventfd support to the current KAIO code,
in order to enable KAIO to post readiness events to a pollable fd (hence
compatible with POSIX select/poll).  The KAIO code simply signals the eventfd
fd when events are ready, and this triggers a POLLIN in the fd.  This patch
uses a reserved for future use member of the struct iocb to pass an eventfd
file descriptor, that KAIO will use to post events every time a request
completes.  At that point, an aio_getevents() will return the completed result
to a struct io_event.  I made a quick test program to verify the patch, and it
runs fine here:

http://www.xmailserver.org/eventfd-aio-test.c

The test program uses poll(2), but it'd, of course, work with select and epoll
too.

This can allow to schedule both block I/O and other poll-able devices
requests, and wait for results using select/poll/epoll.  In a typical
scenario, an application would submit KAIO request using aio_submit(), and
will also use epoll_ctl() on the whole other class of devices (that with the
addition of signals, timers and user events, now it's pretty much complete),
and then would:

	epoll_wait(...);
	for_each_event {
		if (curr_event_is_kaiofd) {
			aio_getevents();
			dispatch_aio_events();
		} else {
			dispatch_epoll_event();
		}
	}

Signed-off-by: Davide Libenzi <davidel@xmailserver.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-11 08:29:37 -07:00
..
2007-05-01 16:11:57 +02:00
2007-05-08 11:15:16 -07:00
2007-02-20 17:10:15 -08:00
2007-05-09 12:30:51 -07:00
2007-05-07 12:12:55 -07:00
2007-02-20 17:10:14 -08:00
2007-05-08 11:15:15 -07:00
2007-05-09 12:30:56 -07:00
2007-05-07 12:13:00 -07:00
2007-05-10 18:24:13 +02:00
2007-05-08 11:15:25 -07:00
2007-04-27 10:57:31 -07:00
2007-05-08 11:15:26 -07:00
2007-05-01 09:11:12 +01:00
2007-02-09 17:39:36 -05:00
2007-02-11 11:18:07 -08:00
2007-05-07 12:12:58 -07:00
2007-05-03 13:17:25 -07:00
2007-05-11 08:29:36 -07:00
2007-03-27 09:05:15 -07:00
2007-05-09 08:57:56 +02:00
2007-05-09 08:57:56 +02:00
2007-05-09 12:30:57 -07:00
2007-05-06 20:38:28 -04:00
2007-05-08 11:15:04 -07:00
2007-05-09 12:30:55 -07:00
2007-04-28 11:01:07 -04:00
2007-04-19 14:56:12 +02:00
2007-03-16 00:59:29 -04:00
2007-04-07 10:03:43 -07:00
2007-05-01 23:26:34 +02:00
2007-05-10 00:01:11 +02:00
2007-04-25 22:30:01 -07:00
2007-04-25 22:29:10 -07:00
2007-04-25 22:24:41 -07:00
2007-04-25 22:29:10 -07:00
2007-05-11 08:29:36 -07:00
2007-05-11 08:29:34 -07:00
2007-05-08 11:15:09 -07:00
2007-04-25 22:25:52 -07:00
2007-05-11 08:29:36 -07:00
2007-05-11 08:29:34 -07:00
2007-05-09 12:30:53 -07:00
2007-05-09 12:30:54 -07:00
2007-05-03 10:52:32 +03:00
2007-05-01 07:49:54 -04:00
2007-02-17 19:17:37 +01:00
2007-05-08 11:15:18 -07:00
2007-05-09 12:30:49 -07:00
2007-05-03 10:52:22 +03:00
2007-05-09 12:30:54 -07:00
2007-05-04 17:59:07 -07:00
2007-05-07 12:12:59 -07:00
2007-05-08 11:15:05 -07:00
2007-05-08 11:15:05 -07:00
2007-05-05 14:15:32 -07:00
2007-03-12 16:31:50 -07:00
2007-05-08 11:15:14 -07:00
2007-03-27 08:55:47 +02:00
2007-04-17 16:36:26 -07:00
2007-05-08 11:14:57 -07:00
2007-05-07 12:12:54 -07:00
2007-05-09 08:57:56 +02:00
2007-05-08 11:15:18 -07:00
2007-05-11 08:29:36 -07:00
2007-05-09 08:57:56 +02:00
2007-05-07 12:12:58 -07:00
2007-05-07 12:12:50 -07:00
2007-05-11 08:29:36 -07:00
2007-05-11 08:29:36 -07:00
2007-05-03 03:16:20 -07:00
2007-05-07 12:12:54 -07:00
2007-02-20 17:10:14 -08:00
2007-02-20 17:10:14 -08:00
2007-05-08 11:14:58 -07:00
2007-05-08 11:15:18 -07:00
2007-05-09 12:30:57 -07:00
2007-02-11 10:51:18 -08:00
2007-02-20 17:10:13 -08:00
2007-05-11 08:29:34 -07:00
2007-05-11 08:29:36 -07:00
2007-05-08 11:15:18 -07:00
2007-05-08 11:15:05 -07:00
2007-05-11 08:29:36 -07:00
2007-02-16 08:13:56 -08:00
2007-03-05 07:57:51 -08:00
2007-05-11 08:29:35 -07:00
2007-05-11 08:29:35 -07:00
2007-05-03 00:55:34 -04:00
2007-05-07 12:12:58 -07:00
2007-05-09 08:57:56 +02:00
2007-05-09 12:30:56 -07:00
2007-02-11 11:18:05 -08:00
2007-05-04 12:55:39 -07:00