Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Theodore Tso <tytso@...>
Cc: Ingo Molnar <mingo@...>, Linus Torvalds <torvalds@...>, Ulrich Drepper <drepper@...>, <linux-kernel@...>, Arjan van de Ven <arjan@...>, Christoph Hellwig <hch@...>, Andrew Morton <akpm@...>, Alan Cox <alan@...>, Zach Brown <zach.brown@...>, David S. Miller <davem@...>, Suparna Bhattacharya <suparna@...>, Davide Libenzi <davidel@...>, Jens Axboe <jens.axboe@...>, Thomas Gleixner <tglx@...>
Date: Tuesday, February 27, 2007 - 8:11 am

On Tue, Feb 27, 2007 at 06:52:22AM -0500, Theodore Tso (tytso@mit.edu) wrote:

Hi Ted.


I understand that - and I totally agree.
But when more complex, more bug-prone code results in higher performance
- that must be used. We have linked lists and binary trees - the latter
are quite complex structures, but they allow to have higher performance
in searching operatins, so we use them.

The same applies to state machines - yes, in some cases it is hard to
program, but when things are already implemented and are wrapped into
nice (no posix) aio_read(), there is absolutely no usage complexity.

Even if it is up to programmer to programm state machine based on
generated events, that higher-layer state machines are not complex.

Let's get simple case of (aio_)read() from file descriptor - if page is in the
cache, no readpage() method will be called, so we do not need to create
some kind of events - just copy data, if there is no page or page is not
uptodate, we allocate a bio and do not wait until buffers are read - we
return to userspace and start another reading, when bio is completed and
its end_io callback is called, we mark pages as uptodate, copy data to userspace,
and mark event bound to above (aio_)read() as completed.
(that is how kevent aio works, btw).
Userspace programmer just calls 
cookie = aio_read();
aio_wait(cookie);
or something like that.

It is simple, it is straightforward, especially if data read must then
be used somewhere else - in that case processing thread will need to operate
with main one, which is simple in event model, since there is a place,
where events of _all_ types are gathered.


-- 
	Evgeniy Polyakov
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Threadlet/syslet v4 bug report., Evgeniy Polyakov, (Sun Feb 25, 10:33 am)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Frederik Deweerdt, (Sun Feb 25, 4:01 pm)
[patchset] Syslets/threadlets, generic AIO support, v4, Ingo Molnar, (Sat Feb 24, 3:41 am)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Wed Feb 21, 6:46 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Wed Feb 21, 9:04 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Thu Feb 22, 5:29 am)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Tue Feb 27, 11:03 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Wed Feb 28, 1:01 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Evgeniy Polyakov, (Tue Feb 27, 8:11 am)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Magnus Naeslund(k), (Mon Mar 5, 12:46 am)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Mon Mar 5, 1:23 am)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Fri Mar 2, 5:21 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Thu Feb 22, 5:24 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Sat Feb 24, 3:52 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Sat Feb 24, 7:01 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Thu Feb 22, 10:47 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Fri Feb 23, 4:31 am)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Fri Feb 23, 7:49 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Fri Feb 23, 8:51 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Fri Feb 23, 11:25 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Fri Feb 23, 10:17 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Suparna Bhattacharya, (Thu Feb 22, 10:17 am)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Suparna Bhattacharya, (Fri Feb 23, 10:23 am)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Sun Feb 25, 7:14 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Evgeniy Polyakov, (Mon Feb 26, 10:05 am)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Evgeniy Polyakov, (Mon Feb 26, 12:55 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Evgeniy Polyakov, (Tue Feb 27, 12:21 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Thu Feb 22, 5:42 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Evgeniy Polyakov, (Thu Feb 22, 11:02 am)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Wed Feb 21, 8:55 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Wed Feb 21, 8:53 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Wed Feb 21, 9:33 pm)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Michael K. Edwards, (Thu Feb 22, 4:59 am)
Re: x86 hardware and transputers (Re: [patch 00/13] Syslets,..., Michael K. Edwards, (Thu Feb 22, 4:45 pm)
Re: A quick fio test (was Re: [patch 00/13] Syslets, "Thread..., Suparna Bhattacharya, (Fri Feb 23, 9:55 am)
Re: A quick fio test (was Re: [patch 00/13] Syslets, "Thread..., Suparna Bhattacharya, (Fri Feb 23, 11:15 am)
Re: A quick fio test (was Re: [patch 00/13] Syslets, "Thread..., Suparna Bhattacharya, (Fri Feb 23, 1:13 pm)
Re: A quick fio test (was Re: [patch 00/13] Syslets, "Thread..., Suparna Bhattacharya, (Mon Feb 26, 10:13 am)
Re: A quick fio test (was Re: [patch 00/13] Syslets, "Thread..., Suparna Bhattacharya, (Tue Feb 27, 12:33 am)
Re: A quick fio test (was Re: [patch 00/13] Syslets, "Thread..., Suparna Bhattacharya, (Tue Feb 27, 8:39 am)
Re: [patch 00/13] Syslets, "Threadlets", generic AIO support..., Suparna Bhattacharya, (Thu Feb 22, 6:01 am)
[patch 13/13] syslets: x86: optimized sys_umem_add(), Ingo Molnar, (Wed Feb 21, 5:16 pm)
[patch 12/13] syslets: x86: optimized copy_uatom(), Ingo Molnar, (Wed Feb 21, 5:15 pm)
[patch 10/13] syslets: x86: enable ASYNC_SUPPORT, Ingo Molnar, (Wed Feb 21, 5:15 pm)
[patch 09/13] syslets: x86, mark async unsafe syscalls, Ingo Molnar, (Wed Feb 21, 5:15 pm)
[patch 06/13] x86: split FPU state from task state, Ingo Molnar, (Wed Feb 21, 5:15 pm)
[patch 05/13] syslets: core, documentation, Ingo Molnar, (Wed Feb 21, 5:15 pm)
Re: [patch 05/13] syslets: core, documentation, Randy Dunlap, (Mon Feb 26, 5:32 pm)
Re: [patch 05/13] syslets: core, documentation, Ingo Molnar, (Tue Feb 27, 2:20 am)
[patch 04/13] syslets: core code, Ingo Molnar, (Wed Feb 21, 5:15 pm)
Re: [patch 04/13] syslets: core code, Davide Libenzi, (Fri Feb 23, 7:08 pm)
Re: [patch 04/13] syslets: core code, Ingo Molnar, (Sat Feb 24, 3:04 am)
Re: [patch 04/13] syslets: core code, Davide Libenzi, (Sat Feb 24, 5:10 pm)
Re: [patch 04/13] syslets: core code, Kyle Moffett, (Sat Feb 24, 6:08 pm)
Re: [patch 04/13] syslets: core code, Davide Libenzi, (Sat Feb 24, 6:25 pm)
Re: [patch 04/13] syslets: core code, Ingo Molnar, (Sun Feb 25, 3:59 am)
[patch 03/13] syslets: generic kernel bits, Ingo Molnar, (Wed Feb 21, 5:15 pm)