Messages in this thread | | | Date | Thu, 12 Jun 2003 13:04:27 +1000 | From | Nick Piggin <> | Subject | Re: [PATCH] io stalls |
| |
Andrea Arcangeli wrote:
>On Thu, Jun 12, 2003 at 12:49:46PM +1000, Nick Piggin wrote: > >> >>Andrea Arcangeli wrote: >> >>>it does nothing w/ _exclusive and w/o the wake_up_nr, that's why I added >>>the wake_up_nr. >>> >>> >>> >>That is pretty pointless as well. You might as well just start >>waking up at the queue full limit, and wake one at a time. >> >>The purpose for batch_requests was I think for devices with a >>very small request size, to reduce context switches. >> > >batch_requests at least in my tree matters only when each request is >512btyes and you've some thousand of them to compose a 4M queue or so. >To maximize cpu cache usage etc.. I try to wakeup a task every 512bytes >written, but every 32*512bytes written or so. Of course w/o the >wake_up_nr that I added, that wasn't really working w/ the _exlusive >wakeup. > >if you check my tree you'll see that for sequential I/O with 512k in >each request (not 512bytes!) batch_requests is already a noop. >
You are waking up multiple tasks which will each submit 1 request. You want to be waking up 1 task which will submit multiple requests - that is how you will save context switches, cpu cache, etc, and that task's requests will have a much better chance of being merged, or at least serviced as a nice batch than unrelated tasks.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |