lkml.org 
[lkml]   [2014]   [Nov]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] blk-mq: don't use rw_is_sync() to determine sync request
On 11/30/2014 05:01 PM, Shaohua Li wrote:
> Buffer read is counted as sync in rw_is_sync(). If we use it,
> blk_sq_make_request() will not do per-process plug any more.
>
> I haven't changed blk_mq_make_request() yet. It makes sense to dispatch
> REQ_SYNC request immediately. But for buffer read, it's weird not to do
> per-process plug, as buffer read doesn't need low latency.
> blk_mq_merge_queue_io() isn't very helpful, as we don't have delay mechanism
> there, the queue is immediately flushed, which makes the merge very
> superficial.

A read is sync, buffered or not. A buffered read is every bit as latency
sensitive as an O_DIRECT read. I think it'd be fine to modify
rw_is_sync() to disregard REQ_AHEAD as sync (and ensure it's carried
forward in the request flags, too). At least to the extent that we
process plug and get the merging, since for streamed reads we'd soon be
waiting on them anyway.

--
Jens Axboe



\
 
 \ /
  Last update: 2014-12-01 03:01    [W:0.055 / U:0.680 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site