All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL for-6.1 0/3] Block patches
@ 2021-07-29 16:22 Stefan Hajnoczi
  2021-07-29 16:22 ` [PULL for-6.1 1/3] MAINTAINERS: add Stefano Garzarella as io_uring reviewer Stefan Hajnoczi
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2021-07-29 16:22 UTC (permalink / raw)
  To: Peter Maydell, qemu-devel
  Cc: Kevin Wolf, qemu-block, Julia Suvorova, Max Reitz,
	Stefan Hajnoczi, Aarushi Mehta, Stefano Garzarella

The following changes since commit 3521ade3510eb5cefb2e27a101667f25dad89935:

  Merge remote-tracking branch 'remotes/thuth-gitlab/tags/pull-request-2021-07-29' into staging (2021-07-29 13:17:20 +0100)

are available in the Git repository at:

  https://gitlab.com/stefanha/qemu.git tags/block-pull-request

for you to fetch changes up to cc8eecd7f105a1dff5876adeb238a14696061a4a:

  MAINTAINERS: Added myself as a reviewer for the NVMe Block Driver (2021-07-29 17:17:34 +0100)

----------------------------------------------------------------
Pull request

The main fix here is for io_uring. Spurious -EAGAIN errors can happen and the
request needs to be resubmitted.

The MAINTAINERS changes carry no risk and we might as well include them in QEMU
6.1.

----------------------------------------------------------------

Fabian Ebner (1):
  block/io_uring: resubmit when result is -EAGAIN

Philippe Mathieu-Daudé (1):
  MAINTAINERS: Added myself as a reviewer for the NVMe Block Driver

Stefano Garzarella (1):
  MAINTAINERS: add Stefano Garzarella as io_uring reviewer

 MAINTAINERS      |  2 ++
 block/io_uring.c | 16 +++++++++++++++-
 2 files changed, 17 insertions(+), 1 deletion(-)

-- 
2.31.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PULL for-6.1 1/3] MAINTAINERS: add Stefano Garzarella as io_uring reviewer
  2021-07-29 16:22 [PULL for-6.1 0/3] Block patches Stefan Hajnoczi
@ 2021-07-29 16:22 ` Stefan Hajnoczi
  2021-07-29 16:22 ` [PULL for-6.1 2/3] block/io_uring: resubmit when result is -EAGAIN Stefan Hajnoczi
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2021-07-29 16:22 UTC (permalink / raw)
  To: Peter Maydell, qemu-devel
  Cc: Kevin Wolf, qemu-block, Julia Suvorova, Max Reitz,
	Stefan Hajnoczi, Aarushi Mehta, Stefano Garzarella

From: Stefano Garzarella <sgarzare@redhat.com>

I've been working with io_uring for a while so I'd like to help
with reviews.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Message-Id: <20210728131515.131045-1-sgarzare@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 MAINTAINERS | 1 +
 1 file changed, 1 insertion(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 42ac45c3e5..1776d0950b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3257,6 +3257,7 @@ Linux io_uring
 M: Aarushi Mehta <mehta.aaru20@gmail.com>
 M: Julia Suvorova <jusual@redhat.com>
 M: Stefan Hajnoczi <stefanha@redhat.com>
+R: Stefano Garzarella <sgarzare@redhat.com>
 L: qemu-block@nongnu.org
 S: Maintained
 F: block/io_uring.c
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PULL for-6.1 2/3] block/io_uring: resubmit when result is -EAGAIN
  2021-07-29 16:22 [PULL for-6.1 0/3] Block patches Stefan Hajnoczi
  2021-07-29 16:22 ` [PULL for-6.1 1/3] MAINTAINERS: add Stefano Garzarella as io_uring reviewer Stefan Hajnoczi
@ 2021-07-29 16:22 ` Stefan Hajnoczi
  2021-07-29 16:22 ` [PULL for-6.1 3/3] MAINTAINERS: Added myself as a reviewer for the NVMe Block Driver Stefan Hajnoczi
  2021-07-30 11:05 ` [PULL for-6.1 0/3] Block patches Peter Maydell
  3 siblings, 0 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2021-07-29 16:22 UTC (permalink / raw)
  To: Peter Maydell, qemu-devel
  Cc: Kevin Wolf, qemu-block, Stefan Hajnoczi, Julia Suvorova,
	Max Reitz, Stefan Hajnoczi, Fabian Ebner, Aarushi Mehta,
	Stefano Garzarella

From: Fabian Ebner <f.ebner@proxmox.com>

Linux SCSI can throw spurious -EAGAIN in some corner cases in its
completion path, which will end up being the result in the completed
io_uring request.

Resubmitting such requests should allow block jobs to complete, even
if such spurious errors are encountered.

Co-authored-by: Stefan Hajnoczi <stefanha@gmail.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
Message-id: 20210729091029.65369-1-f.ebner@proxmox.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 block/io_uring.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/block/io_uring.c b/block/io_uring.c
index 00a3ee9fb8..dfa475cc87 100644
--- a/block/io_uring.c
+++ b/block/io_uring.c
@@ -165,7 +165,21 @@ static void luring_process_completions(LuringState *s)
         total_bytes = ret + luringcb->total_read;
 
         if (ret < 0) {
-            if (ret == -EINTR) {
+            /*
+             * Only writev/readv/fsync requests on regular files or host block
+             * devices are submitted. Therefore -EAGAIN is not expected but it's
+             * known to happen sometimes with Linux SCSI. Submit again and hope
+             * the request completes successfully.
+             *
+             * For more information, see:
+             * https://lore.kernel.org/io-uring/20210727165811.284510-3-axboe@kernel.dk/T/#u
+             *
+             * If the code is changed to submit other types of requests in the
+             * future, then this workaround may need to be extended to deal with
+             * genuine -EAGAIN results that should not be resubmitted
+             * immediately.
+             */
+            if (ret == -EINTR || ret == -EAGAIN) {
                 luring_resubmit(s, luringcb);
                 continue;
             }
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PULL for-6.1 3/3] MAINTAINERS: Added myself as a reviewer for the NVMe Block Driver
  2021-07-29 16:22 [PULL for-6.1 0/3] Block patches Stefan Hajnoczi
  2021-07-29 16:22 ` [PULL for-6.1 1/3] MAINTAINERS: add Stefano Garzarella as io_uring reviewer Stefan Hajnoczi
  2021-07-29 16:22 ` [PULL for-6.1 2/3] block/io_uring: resubmit when result is -EAGAIN Stefan Hajnoczi
@ 2021-07-29 16:22 ` Stefan Hajnoczi
  2021-07-30 11:05 ` [PULL for-6.1 0/3] Block patches Peter Maydell
  3 siblings, 0 replies; 5+ messages in thread
From: Stefan Hajnoczi @ 2021-07-29 16:22 UTC (permalink / raw)
  To: Peter Maydell, qemu-devel
  Cc: Kevin Wolf, qemu-block, Julia Suvorova, Max Reitz,
	Stefan Hajnoczi, Philippe Mathieu-Daudé,
	Aarushi Mehta, Stefano Garzarella

From: Philippe Mathieu-Daudé <philmd@redhat.com>

I'm interested in following the activity around the NVMe bdrv.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20210728183340.2018313-1-philmd@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 MAINTAINERS | 1 +
 1 file changed, 1 insertion(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 1776d0950b..a3d598459a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3178,6 +3178,7 @@ F: block/null.c
 NVMe Block Driver
 M: Stefan Hajnoczi <stefanha@redhat.com>
 R: Fam Zheng <fam@euphon.net>
+R: Philippe Mathieu-Daudé <philmd@redhat.com>
 L: qemu-block@nongnu.org
 S: Supported
 F: block/nvme*
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PULL for-6.1 0/3] Block patches
  2021-07-29 16:22 [PULL for-6.1 0/3] Block patches Stefan Hajnoczi
                   ` (2 preceding siblings ...)
  2021-07-29 16:22 ` [PULL for-6.1 3/3] MAINTAINERS: Added myself as a reviewer for the NVMe Block Driver Stefan Hajnoczi
@ 2021-07-30 11:05 ` Peter Maydell
  3 siblings, 0 replies; 5+ messages in thread
From: Peter Maydell @ 2021-07-30 11:05 UTC (permalink / raw)
  To: Stefan Hajnoczi
  Cc: Kevin Wolf, Qemu-block, Julia Suvorova, QEMU Developers,
	Max Reitz, Aarushi Mehta, Stefano Garzarella

On Thu, 29 Jul 2021 at 17:23, Stefan Hajnoczi <stefanha@redhat.com> wrote:
>
> The following changes since commit 3521ade3510eb5cefb2e27a101667f25dad89935:
>
>   Merge remote-tracking branch 'remotes/thuth-gitlab/tags/pull-request-2021-07-29' into staging (2021-07-29 13:17:20 +0100)
>
> are available in the Git repository at:
>
>   https://gitlab.com/stefanha/qemu.git tags/block-pull-request
>
> for you to fetch changes up to cc8eecd7f105a1dff5876adeb238a14696061a4a:
>
>   MAINTAINERS: Added myself as a reviewer for the NVMe Block Driver (2021-07-29 17:17:34 +0100)
>
> ----------------------------------------------------------------
> Pull request
>
> The main fix here is for io_uring. Spurious -EAGAIN errors can happen and the
> request needs to be resubmitted.
>
> The MAINTAINERS changes carry no risk and we might as well include them in QEMU
> 6.1.


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/6.1
for any user-visible changes.

-- PMM


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-07-30 11:07 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-29 16:22 [PULL for-6.1 0/3] Block patches Stefan Hajnoczi
2021-07-29 16:22 ` [PULL for-6.1 1/3] MAINTAINERS: add Stefano Garzarella as io_uring reviewer Stefan Hajnoczi
2021-07-29 16:22 ` [PULL for-6.1 2/3] block/io_uring: resubmit when result is -EAGAIN Stefan Hajnoczi
2021-07-29 16:22 ` [PULL for-6.1 3/3] MAINTAINERS: Added myself as a reviewer for the NVMe Block Driver Stefan Hajnoczi
2021-07-30 11:05 ` [PULL for-6.1 0/3] Block patches Peter Maydell

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.