Re: [PATCH 0 of 4] Generic AIO by scheduling stacks

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Nick Piggin <nickpiggin@...>
Cc: Linus Torvalds <torvalds@...>, Benjamin Herrenschmidt <benh@...>, Linux Kernel Mailing List <linux-kernel@...>, <linux-aio@...>, Suparna Bhattacharya <suparna@...>, Benjamin LaHaise <bcrl@...>, Ingo Molnar <mingo@...>
Date: Wednesday, January 31, 2007 - 2:20 pm

> The only thing I saw in Zach's post against the use of threads is that

Haha, yeah, that's the silly example I keep throwing around :).  I  
guess it does leave a little too much of the exercise up to the reader.

Perhaps a less goofy example are the uses of current->ioprio and  
current->io_context?

If you create and destroy threads around each operation then you're  
going to be creating and destroying an io_context around each op  
instead of getting a reference on a pre-existing context in  
additional ops.  ioprio is inherited it seems, though, so that's not  
so bad.

If you have a pool of threads and you want to update the ioprio for  
future IOs, you now have to sync up the pool's ioprio with new  
desired priority.

It's all solvable, sure.  Get an io_context ref in copy_process().   
Share ioprio instead of inheriting it.  Have a fun conversation with  
Jens about the change in behaviour this implies.  Broadcasting to  
threads to update ioprio isn't exactly rocket science.

But with the fibril model the user don't have to know to worry about  
the inconsistencies and we kernel developers don't have to worry  
about pro-actively stamping them out.  A series of sync write and  
ioprio setting calls behaves exactly the same as that series of calls  
issued sequentially as "async" calls.  That's worth aiming for, I think.

- z
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 0 of 4] Generic AIO by scheduling stacks, Zach Brown, (Tue Jan 30, 4:39 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Linus Torvalds, (Fri Feb 9, 6:33 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, David Miller, (Sat Feb 10, 8:56 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Linus Torvalds, (Sat Feb 10, 10:49 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, bert hubert, (Sat Feb 10, 6:47 am)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Davide Libenzi, (Sat Feb 10, 2:19 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Eric Dumazet, (Fri Feb 9, 8:04 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Linus Torvalds, (Fri Feb 9, 8:12 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Davide Libenzi, (Fri Feb 9, 7:11 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Linus Torvalds, (Fri Feb 9, 7:35 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Davide Libenzi, (Sat Feb 10, 2:45 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Linus Torvalds, (Sat Feb 10, 3:01 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Davide Libenzi, (Sat Feb 10, 4:59 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Linus Torvalds, (Sat Feb 10, 3:35 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Davide Libenzi, (Sun Feb 4, 1:13 am)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Davide Libenzi, (Sun Feb 4, 4:00 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Benjamin Herrenschmidt, (Tue Jan 30, 10:04 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Zach Brown, (Wed Jan 31, 1:38 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Benjamin LaHaise, (Wed Jan 31, 1:51 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Zach Brown, (Wed Jan 31, 3:25 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Benjamin LaHaise, (Wed Jan 31, 4:05 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Zach Brown, (Wed Jan 31, 4:41 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Linus Torvalds, (Tue Jan 30, 10:46 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Zach Brown, (Wed Jan 31, 1:47 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Nick Piggin, (Wed Jan 31, 1:36 am)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Zach Brown, (Wed Jan 31, 2:20 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Linus Torvalds, (Wed Jan 31, 2:06 am)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Joel Becker, (Wed Jan 31, 4:13 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Ingo Molnar, (Wed Jan 31, 4:43 am)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Nick Piggin, (Wed Jan 31, 1:51 am)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Benjamin Herrenschmidt, (Wed Jan 31, 1:16 am)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Linus Torvalds, (Tue Jan 30, 11:02 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Zach Brown, (Wed Jan 31, 1:59 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Xavier Bestel, (Wed Jan 31, 6:50 am)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Zach Brown, (Wed Jan 31, 3:28 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Linus Torvalds, (Tue Jan 30, 5:58 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Zach Brown, (Tue Jan 30, 6:40 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Linus Torvalds, (Tue Jan 30, 6:53 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Zach Brown, (Tue Jan 30, 7:45 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Benjamin Herrenschmidt, (Tue Jan 30, 10:07 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Linus Torvalds, (Tue Jan 30, 6:23 pm)
Re: [PATCH 0 of 4] Generic AIO by scheduling stacks, Zach Brown, (Tue Jan 30, 6:53 pm)
Re: [PATCH 4 of 4] Introduce aio system call submission and ..., Suparna Bhattacharya, (Thu Feb 1, 7:13 am)
Re: [PATCH 4 of 4] Introduce aio system call submission and ..., Suparna Bhattacharya, (Thu Feb 1, 11:35 pm)
Re: [PATCH 4 of 4] Introduce aio system call submission and ..., Suparna Bhattacharya, (Fri Feb 2, 3:19 am)
[PATCH 2 of 4] Introduce i386 fibril scheduling, Zach Brown, (Tue Jan 30, 4:39 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Sun Feb 4, 1:12 am)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Zach Brown, (Mon Feb 5, 1:54 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Ingo Molnar, (Thu Feb 1, 4:36 am)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Linus Torvalds, (Thu Feb 1, 4:07 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Ingo Molnar, (Fri Feb 2, 6:49 am)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Linus Torvalds, (Fri Feb 2, 11:56 am)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Ingo Molnar, (Fri Feb 2, 6:21 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Zach Brown, (Mon Feb 5, 1:02 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Mon Feb 5, 2:52 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Zach Brown, (Mon Feb 5, 3:20 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Mon Feb 5, 3:38 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Fri Feb 2, 7:37 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, bert hubert, (Mon Feb 5, 5:36 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Linus Torvalds, (Mon Feb 5, 5:57 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Scot McKinley, (Mon Feb 5, 8:27 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Joel Becker, (Mon Feb 5, 8:48 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, David Miller, (Mon Feb 5, 8:48 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Mon Feb 5, 6:34 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, bert hubert, (Mon Feb 5, 6:07 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Zach Brown, (Mon Feb 5, 6:15 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Zach Brown, (Mon Feb 5, 1:12 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Mon Feb 5, 2:24 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, David Miller, (Mon Feb 5, 5:44 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Mon Feb 5, 8:15 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Fri Feb 2, 8:02 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Linus Torvalds, (Fri Feb 2, 6:49 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Ingo Molnar, (Fri Feb 2, 7:55 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Linus Torvalds, (Fri Feb 2, 8:56 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Ingo Molnar, (Sat Feb 3, 4:23 am)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Zach Brown, (Mon Feb 5, 1:44 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Mon Feb 5, 3:26 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Zach Brown, (Mon Feb 5, 3:41 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Mon Feb 5, 4:10 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Linus Torvalds, (Mon Feb 5, 4:39 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Zach Brown, (Mon Feb 5, 5:21 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Mon Feb 5, 5:09 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Mon Feb 5, 8:32 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Kent Overstreet, (Mon Feb 5, 5:31 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Linus Torvalds, (Tue Feb 6, 4:46 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Kent Overstreet, (Tue Feb 6, 6:45 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Tue Feb 6, 7:23 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Joel Becker, (Tue Feb 6, 7:39 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Tue Feb 6, 7:56 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Joel Becker, (Tue Feb 6, 8:06 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Tue Feb 6, 8:23 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Joel Becker, (Tue Feb 6, 8:44 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Michael K. Edwards, (Wed Feb 7, 2:16 am)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Michael K. Edwards, (Wed Feb 7, 5:17 am)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Michael K. Edwards, (Wed Feb 7, 5:37 am)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Tue Feb 6, 9:15 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Joel Becker, (Tue Feb 6, 9:30 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Kent Overstreet, (Tue Feb 6, 9:24 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Linus Torvalds, (Tue Feb 6, 7:04 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Kent Overstreet, (Tue Feb 6, 9:22 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, David Miller, (Tue Feb 6, 5:16 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Linus Torvalds, (Tue Feb 6, 5:28 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, David Miller, (Tue Feb 6, 5:31 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Linus Torvalds, (Tue Feb 6, 5:50 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Zach Brown, (Tue Feb 6, 6:28 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Eric Dumazet, (Tue Feb 6, 5:46 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Tue Feb 6, 4:25 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Zach Brown, (Mon Feb 5, 4:21 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Linus Torvalds, (Mon Feb 5, 4:42 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Matt Mackall, (Sat Feb 3, 5:25 am)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Ingo Molnar, (Sat Feb 3, 6:03 am)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Suparna Bhattacharya, (Sat Feb 3, 3:15 am)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Zach Brown, (Mon Feb 5, 12:44 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Linus Torvalds, (Fri Feb 2, 4:14 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Linus Torvalds, (Fri Feb 2, 5:30 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Ingo Molnar, (Fri Feb 2, 6:42 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Linus Torvalds, (Fri Feb 2, 7:01 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Linus Torvalds, (Fri Feb 2, 7:17 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, bert hubert, (Fri Feb 2, 8:23 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Davide Libenzi, (Fri Feb 2, 4:58 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Linus Torvalds, (Fri Feb 2, 5:09 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Ingo Molnar, (Thu Feb 1, 9:02 am)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Andi Kleen, (Fri Feb 2, 9:22 am)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Zach Brown, (Thu Feb 1, 5:52 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Benjamin LaHaise, (Thu Feb 1, 6:23 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Zach Brown, (Thu Feb 1, 6:37 pm)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Christoph Hellwig, (Thu Feb 1, 9:19 am)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Andi Kleen, (Fri Feb 2, 9:23 am)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Ingo Molnar, (Thu Feb 1, 9:52 am)
Re: [PATCH 2 of 4] Introduce i386 fibril scheduling, Ingo Molnar, (Thu Feb 1, 2:02 pm)
[PATCH 1 of 4] Introduce per_call_chain(), Zach Brown, (Tue Jan 30, 4:39 pm)