1
The following changes since commit 3521ade3510eb5cefb2e27a101667f25dad89935:
1
The following changes since commit 786fd793b81410fb2a28914315e2f05d2ff6733b:
2
2
3
Merge remote-tracking branch 'remotes/thuth-gitlab/tags/pull-request-2021-07-29' into staging (2021-07-29 13:17:20 +0100)
3
Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging (2024-04-03 12:52:03 +0100)
4
4
5
are available in the Git repository at:
5
are available in the Git repository at:
6
6
7
https://gitlab.com/stefanha/qemu.git tags/block-pull-request
7
https://gitlab.com/stefanha/qemu.git tags/block-pull-request
8
8
9
for you to fetch changes up to cc8eecd7f105a1dff5876adeb238a14696061a4a:
9
for you to fetch changes up to bbdf9023665f409113cb07b463732861af63fb47:
10
10
11
MAINTAINERS: Added myself as a reviewer for the NVMe Block Driver (2021-07-29 17:17:34 +0100)
11
block/virtio-blk: Fix memory leak from virtio_blk_zone_report (2024-04-04 09:29:42 -0400)
12
12
13
----------------------------------------------------------------
13
----------------------------------------------------------------
14
Pull request
14
Pull request
15
15
16
The main fix here is for io_uring. Spurious -EAGAIN errors can happen and the
16
Fix a memory leak in virtio-blk zone report emulation code when the request is
17
request needs to be resubmitted.
17
invalid.
18
19
The MAINTAINERS changes carry no risk and we might as well include them in QEMU
20
6.1.
21
18
22
----------------------------------------------------------------
19
----------------------------------------------------------------
23
20
24
Fabian Ebner (1):
21
Zheyu Ma (1):
25
block/io_uring: resubmit when result is -EAGAIN
22
block/virtio-blk: Fix memory leak from virtio_blk_zone_report
26
23
27
Philippe Mathieu-Daudé (1):
24
hw/block/virtio-blk.c | 3 ++-
28
MAINTAINERS: Added myself as a reviewer for the NVMe Block Driver
25
1 file changed, 2 insertions(+), 1 deletion(-)
29
30
Stefano Garzarella (1):
31
MAINTAINERS: add Stefano Garzarella as io_uring reviewer
32
33
MAINTAINERS | 2 ++
34
block/io_uring.c | 16 +++++++++++++++-
35
2 files changed, 17 insertions(+), 1 deletion(-)
36
26
37
--
27
--
38
2.31.1
28
2.44.0
39
diff view generated by jsdifflib
Deleted patch
1
From: Stefano Garzarella <sgarzare@redhat.com>
2
1
3
I've been working with io_uring for a while so I'd like to help
4
with reviews.
5
6
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
7
Message-Id: <20210728131515.131045-1-sgarzare@redhat.com>
8
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
9
---
10
MAINTAINERS | 1 +
11
1 file changed, 1 insertion(+)
12
13
diff --git a/MAINTAINERS b/MAINTAINERS
14
index XXXXXXX..XXXXXXX 100644
15
--- a/MAINTAINERS
16
+++ b/MAINTAINERS
17
@@ -XXX,XX +XXX,XX @@ Linux io_uring
18
M: Aarushi Mehta <mehta.aaru20@gmail.com>
19
M: Julia Suvorova <jusual@redhat.com>
20
M: Stefan Hajnoczi <stefanha@redhat.com>
21
+R: Stefano Garzarella <sgarzare@redhat.com>
22
L: qemu-block@nongnu.org
23
S: Maintained
24
F: block/io_uring.c
25
--
26
2.31.1
27
diff view generated by jsdifflib
Deleted patch
1
From: Fabian Ebner <f.ebner@proxmox.com>
2
1
3
Linux SCSI can throw spurious -EAGAIN in some corner cases in its
4
completion path, which will end up being the result in the completed
5
io_uring request.
6
7
Resubmitting such requests should allow block jobs to complete, even
8
if such spurious errors are encountered.
9
10
Co-authored-by: Stefan Hajnoczi <stefanha@gmail.com>
11
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
12
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
13
Message-id: 20210729091029.65369-1-f.ebner@proxmox.com
14
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
15
---
16
block/io_uring.c | 16 +++++++++++++++-
17
1 file changed, 15 insertions(+), 1 deletion(-)
18
19
diff --git a/block/io_uring.c b/block/io_uring.c
20
index XXXXXXX..XXXXXXX 100644
21
--- a/block/io_uring.c
22
+++ b/block/io_uring.c
23
@@ -XXX,XX +XXX,XX @@ static void luring_process_completions(LuringState *s)
24
total_bytes = ret + luringcb->total_read;
25
26
if (ret < 0) {
27
- if (ret == -EINTR) {
28
+ /*
29
+ * Only writev/readv/fsync requests on regular files or host block
30
+ * devices are submitted. Therefore -EAGAIN is not expected but it's
31
+ * known to happen sometimes with Linux SCSI. Submit again and hope
32
+ * the request completes successfully.
33
+ *
34
+ * For more information, see:
35
+ * https://lore.kernel.org/io-uring/20210727165811.284510-3-axboe@kernel.dk/T/#u
36
+ *
37
+ * If the code is changed to submit other types of requests in the
38
+ * future, then this workaround may need to be extended to deal with
39
+ * genuine -EAGAIN results that should not be resubmitted
40
+ * immediately.
41
+ */
42
+ if (ret == -EINTR || ret == -EAGAIN) {
43
luring_resubmit(s, luringcb);
44
continue;
45
}
46
--
47
2.31.1
48
diff view generated by jsdifflib
1
From: Philippe Mathieu-Daudé <philmd@redhat.com>
1
From: Zheyu Ma <zheyuma97@gmail.com>
2
2
3
I'm interested in following the activity around the NVMe bdrv.
3
This modification ensures that in scenarios where the buffer size is
4
insufficient for a zone report, the function will now properly set an
5
error status and proceed to a cleanup label, instead of merely
6
returning.
4
7
5
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
8
The following ASAN log reveals it:
6
Message-id: 20210728183340.2018313-1-philmd@redhat.com
9
10
==1767400==ERROR: LeakSanitizer: detected memory leaks
11
Direct leak of 312 byte(s) in 1 object(s) allocated from:
12
#0 0x64ac7b3280cd in malloc llvm/compiler-rt/lib/asan/asan_malloc_linux.cpp:129:3
13
#1 0x735b02fb9738 in g_malloc (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x5e738)
14
#2 0x64ac7d23be96 in virtqueue_split_pop hw/virtio/virtio.c:1612:12
15
#3 0x64ac7d23728a in virtqueue_pop hw/virtio/virtio.c:1783:16
16
#4 0x64ac7cfcaacd in virtio_blk_get_request hw/block/virtio-blk.c:228:27
17
#5 0x64ac7cfca7c7 in virtio_blk_handle_vq hw/block/virtio-blk.c:1123:23
18
#6 0x64ac7cfecb95 in virtio_blk_handle_output hw/block/virtio-blk.c:1157:5
19
20
Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
21
Message-id: 20240404120040.1951466-1-zheyuma97@gmail.com
7
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
22
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
8
---
23
---
9
MAINTAINERS | 1 +
24
hw/block/virtio-blk.c | 3 ++-
10
1 file changed, 1 insertion(+)
25
1 file changed, 2 insertions(+), 1 deletion(-)
11
26
12
diff --git a/MAINTAINERS b/MAINTAINERS
27
diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
13
index XXXXXXX..XXXXXXX 100644
28
index XXXXXXX..XXXXXXX 100644
14
--- a/MAINTAINERS
29
--- a/hw/block/virtio-blk.c
15
+++ b/MAINTAINERS
30
+++ b/hw/block/virtio-blk.c
16
@@ -XXX,XX +XXX,XX @@ F: block/null.c
31
@@ -XXX,XX +XXX,XX @@ static void virtio_blk_handle_zone_report(VirtIOBlockReq *req,
17
NVMe Block Driver
32
sizeof(struct virtio_blk_zone_report) +
18
M: Stefan Hajnoczi <stefanha@redhat.com>
33
sizeof(struct virtio_blk_zone_descriptor)) {
19
R: Fam Zheng <fam@euphon.net>
34
virtio_error(vdev, "in buffer too small for zone report");
20
+R: Philippe Mathieu-Daudé <philmd@redhat.com>
35
- return;
21
L: qemu-block@nongnu.org
36
+ err_status = VIRTIO_BLK_S_ZONE_INVALID_CMD;
22
S: Supported
37
+ goto out;
23
F: block/nvme*
38
}
39
40
/* start byte offset of the zone report */
24
--
41
--
25
2.31.1
42
2.44.0
26
diff view generated by jsdifflib