Messages in this thread | | | Date | Mon, 10 Nov 2008 18:35:04 +0100 | From | Jens Axboe <> | Subject | Re: Slow file transfer speeds with CFQ IO scheduler in some cases |
| |
On Mon, Nov 10 2008, Vitaly V. Bursov wrote: > Jens Axboe wrote: > > On Mon, Nov 10 2008, Jeff Moyer wrote: > >> Jens Axboe <jens.axboe@oracle.com> writes: > >> > >>> http://bugzilla.kernel.org/attachment.cgi?id=18473&action=view > >> Funny, I was going to ask the same question. ;) The reason Jens wants > >> you to try this patch is that nfsd may be farming off the I/O requests > >> to different threads which are then performing interleaved I/O. The > >> above patch tries to detect this and allow cooperating processes to get > >> disk time instead of waiting for the idle timeout. > > > > Precisely :-) > > > > The only reason I haven't merged it yet is because of worry of extra > > cost, but I'll throw some SSD love at it and see how it turns out. > > > > Sorry, but I get "oops" same moment nfs read transfer starts. > I can get directory list via nfs, read files locally (not > carefully tested, though) > > Dumps captured via netconsole, so these may not be completely accurate > but hopefully will give a hint.
Interesting, strange how that hasn't triggered here. Or perhaps the version that Jeff posted isn't the one I tried. Anyway, search for:
RB_CLEAR_NODE(&cfqq->rb_node);
and add a
RB_CLEAR_NODE(&cfqq->prio_node);
just below that. It's in cfq_find_alloc_queue(). I think that should fix it.
-- Jens Axboe
| |