Re: [PATCH] Fix regression in direct writes performance due toWRITE_ODIRECT flag removal

From: Jens Axboe
Date: Thu Nov 26 2009 - 03:46:00 EST


On Tue, Nov 24 2009, Vivek Goyal wrote:
> Hi Jens,
>
> There seems to be a regression in direct write path due to following
> commit in for-2.6.33 branch of block tree.
>
> commit 1af60fbd759d31f565552fea315c2033947cfbe6
> Author: Jeff Moyer <jmoyer@xxxxxxxxxx>
> Date: Fri Oct 2 18:56:53 2009 -0400
>
> block: get rid of the WRITE_ODIRECT flag
>
>
> Marking direct writes as WRITE_SYNC_PLUG instead of WRITE_ODIRECT, sets
> the NOIDLE flag in bio and hence in request. This tells CFQ to not expect
> more request from the queue and not idle on it (despite the fact that
> queue's think time is less and it is not seeky).
>
> So direct writers lose big time when competing with sequential readers.
>
> Using fio, I have run one direct writer and two sequential readers and
> following are the results with 2.6.32-rc7 kernel and with for-2.6.33
> branch.
>
> Test
> ====
> 1 direct writer and 2 sequential reader running simultaneously.
>
> [global]
> directory=/mnt/sdc/fio/
> runtime=10
>
> [seqwrite]
> rw=write
> size=4G
> direct=1
>
> [seqread]
> rw=read
> size=2G
> numjobs=2
>
> 2.6.32-rc7
> ==========
> direct writes: aggrb=2,968KB/s
> readers : aggrb=101MB/s
>
> for-2.6.33 branch
> =================
> direct write: aggrb=19KB/s
> readers aggrb=137MB/s

Thanks, that shows pretty well the impact that idling can have :-).
I have applied it.

--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/