From: Shaohua Li <shli@kernel.org>
To: Jens Axboe <axboe@fb.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] blk-mq: don't use rw_is_sync() to determine sync request
Date: Sun, 30 Nov 2014 19:57:12 -0800 [thread overview]
Message-ID: <20141201035712.GA8443@kernel.org> (raw)
In-Reply-To: <547BC5CF.7080904@fb.com>
On Sun, Nov 30, 2014 at 06:35:11PM -0700, Jens Axboe wrote:
> 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.
A quick search shows nobody uses REQ_AHEAD. For stream reads, only first several
reads are waited I suppose, later reads are read ahead. Maybe only counts
REQ_META read as sync?
Thanks,
Shaohua
next prev parent reply other threads:[~2014-12-01 3:57 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-01 0:01 [PATCH] blk-mq: don't use rw_is_sync() to determine sync request Shaohua Li
2014-12-01 1:35 ` Jens Axboe
2014-12-01 3:57 ` Shaohua Li [this message]
2014-12-01 18:59 ` Shaohua Li
2014-12-02 2:43 ` Jens Axboe
2014-12-03 18:01 ` Shaohua Li
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141201035712.GA8443@kernel.org \
--to=shli@kernel.org \
--cc=axboe@fb.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.