diff mbox series

[SRU,Groovy] UBUNTU: SAUCE: Revert "block: don't ignore REQ_NOWAIT for direct IO"

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

Commit Message

Kamal Mostafa July 9, 2021, 7:03 p.m. UTC
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>
---
 fs/block_dev.c | 4 ----
 1 file changed, 4 deletions(-)

Comments

Stefan Bader July 12, 2021, 7:25 a.m. UTC | #1
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;
>
Kleber Sacilotto de Souza July 12, 2021, 7:58 a.m. UTC | #2
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;
>
Kleber Sacilotto de Souza July 13, 2021, 12:46 p.m. UTC | #3
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 mbox series

Patch

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;