1
The following changes since commit 3521ade3510eb5cefb2e27a101667f25dad89935:
1
The following changes since commit 30aa19446d82358a30eac3b556b4d6641e00b7c1:
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 remote-tracking branch 'remotes/cschoenebeck/tags/pull-9p-20200812' into staging (2020-08-24 16:39:53 +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://github.com/XanClic/qemu.git tags/pull-block-2020-08-26
8
8
9
for you to fetch changes up to cc8eecd7f105a1dff5876adeb238a14696061a4a:
9
for you to fetch changes up to a5d3cfa2dc775e5d99f013703b8508f1d989d588:
10
10
11
MAINTAINERS: Added myself as a reviewer for the NVMe Block Driver (2021-07-29 17:17:34 +0100)
11
iotests: Add tests for qcow2 images with extended L2 entries (2020-08-26 08:49:51 +0200)
12
12
13
----------------------------------------------------------------
13
----------------------------------------------------------------
14
Pull request
14
Block patches:
15
15
- qcow2 subclusters (extended L2 entries)
16
The main fix here is for io_uring. Spurious -EAGAIN errors can happen and the
17
request needs to be resubmitted.
18
19
The MAINTAINERS changes carry no risk and we might as well include them in QEMU
20
6.1.
21
16
22
----------------------------------------------------------------
17
----------------------------------------------------------------
18
v2:
19
- Fixed the shebang line in iotest 271
23
20
24
Fabian Ebner (1):
21
----------------------------------------------------------------
25
block/io_uring: resubmit when result is -EAGAIN
22
Alberto Garcia (34):
23
qcow2: Make Qcow2AioTask store the full host offset
24
qcow2: Convert qcow2_get_cluster_offset() into qcow2_get_host_offset()
25
qcow2: Add calculate_l2_meta()
26
qcow2: Split cluster_needs_cow() out of count_cow_clusters()
27
qcow2: Process QCOW2_CLUSTER_ZERO_ALLOC clusters in handle_copied()
28
qcow2: Add get_l2_entry() and set_l2_entry()
29
qcow2: Document the Extended L2 Entries feature
30
qcow2: Add dummy has_subclusters() function
31
qcow2: Add subcluster-related fields to BDRVQcow2State
32
qcow2: Add offset_to_sc_index()
33
qcow2: Add offset_into_subcluster() and size_to_subclusters()
34
qcow2: Add l2_entry_size()
35
qcow2: Update get/set_l2_entry() and add get/set_l2_bitmap()
36
qcow2: Add QCow2SubclusterType and qcow2_get_subcluster_type()
37
qcow2: Add qcow2_get_subcluster_range_type()
38
qcow2: Add qcow2_cluster_is_allocated()
39
qcow2: Add cluster type parameter to qcow2_get_host_offset()
40
qcow2: Replace QCOW2_CLUSTER_* with QCOW2_SUBCLUSTER_*
41
qcow2: Handle QCOW2_SUBCLUSTER_UNALLOCATED_ALLOC
42
qcow2: Add subcluster support to calculate_l2_meta()
43
qcow2: Add subcluster support to qcow2_get_host_offset()
44
qcow2: Add subcluster support to zero_in_l2_slice()
45
qcow2: Add subcluster support to discard_in_l2_slice()
46
qcow2: Add subcluster support to check_refcounts_l2()
47
qcow2: Update L2 bitmap in qcow2_alloc_cluster_link_l2()
48
qcow2: Clear the L2 bitmap when allocating a compressed cluster
49
qcow2: Add subcluster support to handle_alloc_space()
50
qcow2: Add subcluster support to qcow2_co_pwrite_zeroes()
51
qcow2: Add subcluster support to qcow2_measure()
52
qcow2: Add prealloc field to QCowL2Meta
53
qcow2: Add the 'extended_l2' option and the QCOW2_INCOMPAT_EXTL2 bit
54
qcow2: Allow preallocation and backing files if extended_l2 is set
55
qcow2: Assert that expand_zero_clusters_in_l1() does not support
56
subclusters
57
iotests: Add tests for qcow2 images with extended L2 entries
26
58
27
Philippe Mathieu-Daudé (1):
59
docs/interop/qcow2.txt | 68 ++-
28
MAINTAINERS: Added myself as a reviewer for the NVMe Block Driver
60
docs/qcow2-cache.txt | 19 +-
29
61
qapi/block-core.json | 7 +
30
Stefano Garzarella (1):
62
block/qcow2.h | 211 ++++++-
31
MAINTAINERS: add Stefano Garzarella as io_uring reviewer
63
include/block/block_int.h | 1 +
32
64
block/qcow2-cluster.c | 906 +++++++++++++++++++++----------
33
MAINTAINERS | 2 ++
65
block/qcow2-refcount.c | 47 +-
34
block/io_uring.c | 16 +++++++++++++++-
66
block/qcow2.c | 302 +++++++----
35
2 files changed, 17 insertions(+), 1 deletion(-)
67
block/trace-events | 2 +-
68
tests/qemu-iotests/031.out | 8 +-
69
tests/qemu-iotests/036.out | 4 +-
70
tests/qemu-iotests/049.out | 102 ++--
71
tests/qemu-iotests/060.out | 3 +-
72
tests/qemu-iotests/061 | 6 +
73
tests/qemu-iotests/061.out | 25 +-
74
tests/qemu-iotests/065 | 12 +-
75
tests/qemu-iotests/082.out | 39 +-
76
tests/qemu-iotests/085.out | 38 +-
77
tests/qemu-iotests/144.out | 4 +-
78
tests/qemu-iotests/182.out | 2 +-
79
tests/qemu-iotests/185.out | 8 +-
80
tests/qemu-iotests/198 | 2 +
81
tests/qemu-iotests/206.out | 6 +-
82
tests/qemu-iotests/242.out | 5 +
83
tests/qemu-iotests/255.out | 8 +-
84
tests/qemu-iotests/271 | 901 ++++++++++++++++++++++++++++++
85
tests/qemu-iotests/271.out | 726 +++++++++++++++++++++++++
86
tests/qemu-iotests/274.out | 49 +-
87
tests/qemu-iotests/280.out | 2 +-
88
tests/qemu-iotests/291.out | 2 +
89
tests/qemu-iotests/302.out | 1 +
90
tests/qemu-iotests/303.out | 4 +-
91
tests/qemu-iotests/common.filter | 1 +
92
tests/qemu-iotests/group | 1 +
93
34 files changed, 2952 insertions(+), 570 deletions(-)
94
create mode 100755 tests/qemu-iotests/271
95
create mode 100644 tests/qemu-iotests/271.out
36
96
37
--
97
--
38
2.31.1
98
2.26.2
39
99
100
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
Deleted patch
1
From: Philippe Mathieu-Daudé <philmd@redhat.com>
2
1
3
I'm interested in following the activity around the NVMe bdrv.
4
5
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
6
Message-id: 20210728183340.2018313-1-philmd@redhat.com
7
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
8
---
9
MAINTAINERS | 1 +
10
1 file changed, 1 insertion(+)
11
12
diff --git a/MAINTAINERS b/MAINTAINERS
13
index XXXXXXX..XXXXXXX 100644
14
--- a/MAINTAINERS
15
+++ b/MAINTAINERS
16
@@ -XXX,XX +XXX,XX @@ F: block/null.c
17
NVMe Block Driver
18
M: Stefan Hajnoczi <stefanha@redhat.com>
19
R: Fam Zheng <fam@euphon.net>
20
+R: Philippe Mathieu-Daudé <philmd@redhat.com>
21
L: qemu-block@nongnu.org
22
S: Supported
23
F: block/nvme*
24
--
25
2.31.1
26
diff view generated by jsdifflib