Message ID | 20210709190346.11872-1-kamal@canonical.com |
---|---|
State | New |
Headers | show |
Series | [SRU,Groovy] UBUNTU: SAUCE: Revert "block: don't ignore REQ_NOWAIT for direct IO" | expand |
On 09.07.21 21:03, Kamal Mostafa wrote: > BugLink: https://bugs.launchpad.net/bugs/1935017 > > This reverts commit 87c9cfe0fa1fb0fc81c20a6f5ba3c2494871e061. > > This commit which is a backport of > [mainline] f8b78caf21d5 "block: don't ignore REQ_NOWAIT for direct IO" > was picked up from linux-stable v5.4 (or v5.10). It has been shown to > be the cause of the LP:#1935017 io_uring regression in the Ubuntu v5.8 > kernel (specifically observed in Ubuntu-hwe-5.8-5.8.0-59.66_20.04.1). > > Reported-by: Juhyung Park <qkrwngud825@gmail.com> > Tested-by: Juhyung Park <qkrwngud825@gmail.com> > Signed-off-by: Kamal Mostafa <kamal@canonical.com> Acked-by: Stefan Bader <stefan.bader@canonical.com> > --- > fs/block_dev.c | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/fs/block_dev.c b/fs/block_dev.c > index 271b05a321d0..0b6e300e938e 100644 > --- a/fs/block_dev.c > +++ b/fs/block_dev.c > @@ -244,8 +244,6 @@ __blkdev_direct_IO_simple(struct kiocb *iocb, struct iov_iter *iter, > bio.bi_opf = dio_bio_write_op(iocb); > task_io_account_write(ret); > } > - if (iocb->ki_flags & IOCB_NOWAIT) > - bio.bi_opf |= REQ_NOWAIT; > if (iocb->ki_flags & IOCB_HIPRI) > bio_set_polled(&bio, iocb); > > @@ -399,8 +397,6 @@ __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, int nr_pages) > bio->bi_opf = dio_bio_write_op(iocb); > task_io_account_write(bio->bi_iter.bi_size); > } > - if (iocb->ki_flags & IOCB_NOWAIT) > - bio->bi_opf |= REQ_NOWAIT; > > dio->size += bio->bi_iter.bi_size; > pos += bio->bi_iter.bi_size; >
On 09.07.21 21:03, Kamal Mostafa wrote: > BugLink: https://bugs.launchpad.net/bugs/1935017 > > This reverts commit 87c9cfe0fa1fb0fc81c20a6f5ba3c2494871e061. > > This commit which is a backport of > [mainline] f8b78caf21d5 "block: don't ignore REQ_NOWAIT for direct IO" > was picked up from linux-stable v5.4 (or v5.10). It has been shown to > be the cause of the LP:#1935017 io_uring regression in the Ubuntu v5.8 > kernel (specifically observed in Ubuntu-hwe-5.8-5.8.0-59.66_20.04.1). > > Reported-by: Juhyung Park <qkrwngud825@gmail.com> > Tested-by: Juhyung Park <qkrwngud825@gmail.com> > Signed-off-by: Kamal Mostafa <kamal@canonical.com> Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com> Thanks > --- > fs/block_dev.c | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/fs/block_dev.c b/fs/block_dev.c > index 271b05a321d0..0b6e300e938e 100644 > --- a/fs/block_dev.c > +++ b/fs/block_dev.c > @@ -244,8 +244,6 @@ __blkdev_direct_IO_simple(struct kiocb *iocb, struct iov_iter *iter, > bio.bi_opf = dio_bio_write_op(iocb); > task_io_account_write(ret); > } > - if (iocb->ki_flags & IOCB_NOWAIT) > - bio.bi_opf |= REQ_NOWAIT; > if (iocb->ki_flags & IOCB_HIPRI) > bio_set_polled(&bio, iocb); > > @@ -399,8 +397,6 @@ __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, int nr_pages) > bio->bi_opf = dio_bio_write_op(iocb); > task_io_account_write(bio->bi_iter.bi_size); > } > - if (iocb->ki_flags & IOCB_NOWAIT) > - bio->bi_opf |= REQ_NOWAIT; > > dio->size += bio->bi_iter.bi_size; > pos += bio->bi_iter.bi_size; >
On 09.07.21 21:03, Kamal Mostafa wrote: > BugLink: https://bugs.launchpad.net/bugs/1935017 > > This reverts commit 87c9cfe0fa1fb0fc81c20a6f5ba3c2494871e061. > > This commit which is a backport of > [mainline] f8b78caf21d5 "block: don't ignore REQ_NOWAIT for direct IO" > was picked up from linux-stable v5.4 (or v5.10). It has been shown to > be the cause of the LP:#1935017 io_uring regression in the Ubuntu v5.8 > kernel (specifically observed in Ubuntu-hwe-5.8-5.8.0-59.66_20.04.1). > > Reported-by: Juhyung Park <qkrwngud825@gmail.com> > Tested-by: Juhyung Park <qkrwngud825@gmail.com> > Signed-off-by: Kamal Mostafa <kamal@canonical.com> Applied to groovy:linux. Thanks, Kleber > --- > fs/block_dev.c | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/fs/block_dev.c b/fs/block_dev.c > index 271b05a321d0..0b6e300e938e 100644 > --- a/fs/block_dev.c > +++ b/fs/block_dev.c > @@ -244,8 +244,6 @@ __blkdev_direct_IO_simple(struct kiocb *iocb, struct iov_iter *iter, > bio.bi_opf = dio_bio_write_op(iocb); > task_io_account_write(ret); > } > - if (iocb->ki_flags & IOCB_NOWAIT) > - bio.bi_opf |= REQ_NOWAIT; > if (iocb->ki_flags & IOCB_HIPRI) > bio_set_polled(&bio, iocb); > > @@ -399,8 +397,6 @@ __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, int nr_pages) > bio->bi_opf = dio_bio_write_op(iocb); > task_io_account_write(bio->bi_iter.bi_size); > } > - if (iocb->ki_flags & IOCB_NOWAIT) > - bio->bi_opf |= REQ_NOWAIT; > > dio->size += bio->bi_iter.bi_size; > pos += bio->bi_iter.bi_size; >
diff --git a/fs/block_dev.c b/fs/block_dev.c index 271b05a321d0..0b6e300e938e 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -244,8 +244,6 @@ __blkdev_direct_IO_simple(struct kiocb *iocb, struct iov_iter *iter, bio.bi_opf = dio_bio_write_op(iocb); task_io_account_write(ret); } - if (iocb->ki_flags & IOCB_NOWAIT) - bio.bi_opf |= REQ_NOWAIT; if (iocb->ki_flags & IOCB_HIPRI) bio_set_polled(&bio, iocb); @@ -399,8 +397,6 @@ __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, int nr_pages) bio->bi_opf = dio_bio_write_op(iocb); task_io_account_write(bio->bi_iter.bi_size); } - if (iocb->ki_flags & IOCB_NOWAIT) - bio->bi_opf |= REQ_NOWAIT; dio->size += bio->bi_iter.bi_size; pos += bio->bi_iter.bi_size;