All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: JeffleXu <jefflexu@linux.alibaba.com>
Cc: Christoph Hellwig <hch@infradead.org>,
	axboe@kernel.dk, ming.lei@redhat.com,
	linux-block@vger.kernel.org, io-uring@vger.kernel.org,
	joseph.qi@linux.alibaba.com
Subject: Re: [PATCH v4 2/2] block,iomap: disable iopoll when split needed
Date: Tue, 24 Nov 2020 11:25:47 +0000	[thread overview]
Message-ID: <20201124112547.GA26805@infradead.org> (raw)
In-Reply-To: <ed355fc8-6fc8-5ffd-f1e9-6ba19f761a09@linux.alibaba.com>

On Fri, Nov 20, 2020 at 06:06:54PM +0800, JeffleXu wrote:
> 
> On 11/20/20 1:55 AM, Christoph Hellwig wrote:
> > > diff --git a/fs/iomap/direct-io.c b/fs/iomap/direct-io.c
> > > index 933f234d5bec..396ac0f91a43 100644
> > > --- a/fs/iomap/direct-io.c
> > > +++ b/fs/iomap/direct-io.c
> > > @@ -309,6 +309,16 @@ iomap_dio_bio_actor(struct inode *inode, loff_t pos, loff_t length,
> > >   		copied += n;
> > >   		nr_pages = iov_iter_npages(dio->submit.iter, BIO_MAX_PAGES);
> > > +		/*
> > > +		 * The current dio needs to be split into multiple bios here.
> > > +		 * iopoll for split bio will cause subtle trouble such as
> > > +		 * hang when doing sync polling, while iopoll is initially
> > > +		 * for small size, latency sensitive IO. Thus disable iopoll
> > > +		 * if split needed.
> > > +		 */
> > > +		if (nr_pages)
> > > +			dio->iocb->ki_flags &= ~IOCB_HIPRI;
> > I think this is confusing two things.
> 
> Indeed there's two level of split concerning this issue when doing sync
> iopoll.
> 
> 
> The first is that one bio got split in block-core, and patch 1 of this patch
> set just fixes this.
> 
> 
> Second is that one dio got split into multiple bios in fs layer, and patch 2
> fixes this.
> 
> 
> >   One is that we don't handle
> > polling well when there are multiple bios.  For this I think we should
> > only call bio_set_polled when we know there is a single bio.
> 
> 
> How about the following patch:
> 
> 
> --- a/fs/iomap/direct-io.c
> +++ b/fs/iomap/direct-io.c
> @@ -60,12 +60,12 @@ int iomap_dio_iopoll(struct kiocb *kiocb, bool spin)
> ??EXPORT_SYMBOL_GPL(iomap_dio_iopoll);
> 
> ??static void iomap_dio_submit_bio(struct iomap_dio *dio, struct iomap
> *iomap,
> -???????????????????????????? struct bio *bio, loff_t pos)
> +???????????????????????????? struct bio *bio, loff_t pos, bool split)

This seems pretty messed up by your mailer and I have a hard time
reading it.  Can you resend it?

  parent reply	other threads:[~2020-11-24 11:25 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-17  7:56 [PATCH v4 0/2] block, iomap: disable iopoll for split bio Jeffle Xu
2020-11-17  7:56 ` [PATCH v4 1/2] block: " Jeffle Xu
2020-11-19  3:06   ` JeffleXu
2020-11-19 17:52   ` Christoph Hellwig
2020-11-20  9:22     ` JeffleXu
2020-11-17  7:56 ` [PATCH v4 2/2] block,iomap: disable iopoll when split needed Jeffle Xu
2020-11-17 17:37   ` Darrick J. Wong
2020-11-18  1:56     ` JeffleXu
2020-11-19 17:55   ` Christoph Hellwig
2020-11-20 10:06     ` JeffleXu
2020-11-20 10:09       ` Fwd: " JeffleXu
2020-11-24 11:25       ` Christoph Hellwig [this message]
2020-11-25  7:03         ` JeffleXu
2020-11-17 12:51 ` [PATCH v4 0/2] block, iomap: disable iopoll for split bio JeffleXu
2020-11-18  9:50   ` JeffleXu

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=20201124112547.GA26805@infradead.org \
    --to=hch@infradead.org \
    --cc=axboe@kernel.dk \
    --cc=io-uring@vger.kernel.org \
    --cc=jefflexu@linux.alibaba.com \
    --cc=joseph.qi@linux.alibaba.com \
    --cc=linux-block@vger.kernel.org \
    --cc=ming.lei@redhat.com \
    /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.