From: Jeff Moyer <jmoyer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
Cc: viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn@public.gmane.org,
axboe-b10kYP2dOMg@public.gmane.org,
milosz-B5zB6C1i6pkAvxtiuMwx3w@public.gmane.org,
linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-block-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: selective block polling and preadv2/pwritev2 revisited V2
Date: Fri, 26 Feb 2016 16:18:55 -0500 [thread overview]
Message-ID: <x497fhrmaps.fsf@segfault.boston.devel.redhat.com> (raw)
In-Reply-To: <1456160876-14560-1-git-send-email-hch-jcswGhMUV9g@public.gmane.org> (Christoph Hellwig's message of "Mon, 22 Feb 2016 18:07:49 +0100")
Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org> writes:
> This series allows to selectively enable/disable polling for completions
> in the block layer on a per-I/O basis. For this it resurrects the
> preadv2/pwritev2 syscalls that Milosz prepared a while ago (and which
> are much simpler now due to VFS changes that happened in the meantime).
> That approach also had a man page update prepared, which I will resubmit
> with the current flags once this series makes it in.
It would be helpful for reviewers if you submitted the man page at the
same time, in my opinion.
Do you have any plans on adding polling support to the buffered path?
> Polling for block I/O is important to reduce the latency on flash and
> post-flash storage technologies. On the fastest NVMe controller I have
> access to it almost halves latencies from over 7 microseconds to about 4
> microseonds. But it only is usesful if we actually care for the latency
> of this particular I/O, and generally is a waste if enabled for all I/O
> to a given device. This series uses the per-I/O flags in preadv2/pwritev2
> to control this behavior. The alternative would be a new O_* flag set
> at open time or using fcntl, but this is still to corse-grained for some
> applications and we're starting to run out out of open flags.
I agree that a per-I/O mechanism is better suited to this application.
> Note that there are plenty of other use cases for preadv2/pwritev2 as well,
> but I'd like to concentrate on this one for now. Example are: non-blocking
> reads (the original purpose), per-I/O O_SYNC, user space support for T10
> DIF/DIX applications tags and probably some more.
And my favorite, RWF_ATOMIC. :) I agree, it's time we got this
interface in.
See responses to individual patches for my review.
Cheers,
Jeff
next prev parent reply other threads:[~2016-02-26 21:18 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-22 17:07 selective block polling and preadv2/pwritev2 revisited V2 Christoph Hellwig
2016-02-22 17:07 ` [PATCH 1/7] vfs: pass a flags argument to vfs_readv/vfs_writev Christoph Hellwig
[not found] ` <1456160876-14560-2-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-02-26 21:52 ` Jeff Moyer
2016-02-22 17:07 ` [PATCH 5/7] direct-io: only use block polling if explicitly requested Christoph Hellwig
[not found] ` <1456160876-14560-6-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-02-26 21:58 ` Jeff Moyer
[not found] ` <1456160876-14560-1-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-02-22 17:07 ` [PATCH 2/7] vfs: vfs: Define new syscalls preadv2,pwritev2 Christoph Hellwig
[not found] ` <1456160876-14560-3-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-02-26 21:51 ` Jeff Moyer
2016-02-27 8:58 ` Christoph Hellwig
2016-02-22 17:07 ` [PATCH 3/7] x86: wire up preadv2 and pwritev2 Christoph Hellwig
2016-02-22 17:07 ` [PATCH 4/7] vfs: add the RWF_HIPRI flag for preadv2/pwritev2 Christoph Hellwig
[not found] ` <1456160876-14560-5-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-02-26 21:56 ` Jeff Moyer
2016-02-27 8:58 ` Christoph Hellwig
2016-02-22 17:07 ` [PATCH 6/7] blk-mq: enable polling support by default Christoph Hellwig
[not found] ` <1456160876-14560-7-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-02-26 20:44 ` Jeff Moyer
[not found] ` <x49fuwfmcb5.fsf-RRHT56Q3PSP4kTEheFKJxxDDeQx5vsVwAInAS/Ez/D0@public.gmane.org>
2016-02-27 8:56 ` Christoph Hellwig
2016-02-29 14:27 ` Jeff Moyer
2016-02-22 17:07 ` [PATCH 7/7] block, directio: set a REQ_POLL flag when submitting polled bios Christoph Hellwig
[not found] ` <1456160876-14560-8-git-send-email-hch-jcswGhMUV9g@public.gmane.org>
2016-02-26 21:10 ` Jeff Moyer
2016-02-27 8:57 ` Christoph Hellwig
2016-02-29 14:28 ` Jeff Moyer
2016-02-26 21:18 ` Jeff Moyer [this message]
2016-02-27 8:57 ` selective block polling and preadv2/pwritev2 revisited V2 Christoph Hellwig
[not found] ` <20160227085744.GC4255-jcswGhMUV9g@public.gmane.org>
2016-02-29 1:30 ` Damien Le Moal
2016-02-29 14:59 ` Jeff Moyer
2016-02-26 15:06 ` Stephen Bates
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=x497fhrmaps.fsf@segfault.boston.devel.redhat.com \
--to=jmoyer-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=axboe-b10kYP2dOMg@public.gmane.org \
--cc=hch-jcswGhMUV9g@public.gmane.org \
--cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-block-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=milosz-B5zB6C1i6pkAvxtiuMwx3w@public.gmane.org \
--cc=viro-RmSDqhL/yNMiFSDQTTA3OLVCufUGDwFn@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).