1
The following changes since commit 3521ade3510eb5cefb2e27a101667f25dad89935:
1
The following changes since commit ea9cdbcf3a0b8d5497cddf87990f1b39d8f3bb0a:
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 'hw-misc-20240913' of https://github.com/philmd/qemu into staging (2024-09-15 18:27:40 +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 89cd6254b80784a1b3f574407192493ef92fe65f:
10
10
11
MAINTAINERS: Added myself as a reviewer for the NVMe Block Driver (2021-07-29 17:17:34 +0100)
11
hw/block: fix uint32 overflow (2024-09-17 12:12:30 +0200)
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
An integer overflow fix for the last zone on a zoned block device whose
17
request needs to be resubmitted.
17
capacity is not a multiple of the zone size.
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
Dmitry Frolov (1):
25
block/io_uring: resubmit when result is -EAGAIN
22
hw/block: fix uint32 overflow
26
23
27
Philippe Mathieu-Daudé (1):
24
hw/block/virtio-blk.c | 2 +-
28
MAINTAINERS: Added myself as a reviewer for the NVMe Block Driver
25
1 file changed, 1 insertion(+), 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.46.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: Dmitry Frolov <frolov@swemel.ru>
2
2
3
I'm interested in following the activity around the NVMe bdrv.
3
The product bs->bl.zone_size * (bs->bl.nr_zones - 1) may overflow
4
uint32.
4
5
5
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
6
Found by Linux Verification Center (linuxtesting.org) with SVACE.
6
Message-id: 20210728183340.2018313-1-philmd@redhat.com
7
8
Signed-off-by: Dmitry Frolov <frolov@swemel.ru>
9
Message-id: 20240917080356.270576-2-frolov@swemel.ru
7
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
10
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
8
---
11
---
9
MAINTAINERS | 1 +
12
hw/block/virtio-blk.c | 2 +-
10
1 file changed, 1 insertion(+)
13
1 file changed, 1 insertion(+), 1 deletion(-)
11
14
12
diff --git a/MAINTAINERS b/MAINTAINERS
15
diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
13
index XXXXXXX..XXXXXXX 100644
16
index XXXXXXX..XXXXXXX 100644
14
--- a/MAINTAINERS
17
--- a/hw/block/virtio-blk.c
15
+++ b/MAINTAINERS
18
+++ b/hw/block/virtio-blk.c
16
@@ -XXX,XX +XXX,XX @@ F: block/null.c
19
@@ -XXX,XX +XXX,XX @@ static int virtio_blk_handle_zone_mgmt(VirtIOBlockReq *req, BlockZoneOp op)
17
NVMe Block Driver
20
} else {
18
M: Stefan Hajnoczi <stefanha@redhat.com>
21
if (bs->bl.zone_size > capacity - offset) {
19
R: Fam Zheng <fam@euphon.net>
22
/* The zoned device allows the last smaller zone. */
20
+R: Philippe Mathieu-Daudé <philmd@redhat.com>
23
- len = capacity - bs->bl.zone_size * (bs->bl.nr_zones - 1);
21
L: qemu-block@nongnu.org
24
+ len = capacity - bs->bl.zone_size * (bs->bl.nr_zones - 1ull);
22
S: Supported
25
} else {
23
F: block/nvme*
26
len = bs->bl.zone_size;
27
}
24
--
28
--
25
2.31.1
29
2.46.0
26
diff view generated by jsdifflib