1
The following changes since commit 5204b499a6cae4dfd9fe762d5e6e82224892383b:
1
The following changes since commit e1e44a9916b4318e943aecd669e096222cb3eaeb:
2
2
3
mailmap: Fix Stefan Weil author email (2022-12-13 15:56:57 -0500)
3
Merge remote-tracking branch 'remotes/xtensa/tags/20180316-xtensa' into staging (2018-03-17 14:15:03 +0000)
4
4
5
are available in the Git repository at:
5
are available in the git repository at:
6
6
7
https://repo.or.cz/qemu/kevin.git tags/for-upstream
7
git://repo.or.cz/qemu/kevin.git tags/for-upstream
8
8
9
for you to fetch changes up to 347fe9e156a3e00c40ae1802978276a1f7d5545f:
9
for you to fetch changes up to 63ca8406beac44aa59c389ed8578d0c7b3da3402:
10
10
11
block: GRAPH_RDLOCK for functions only called by co_wrappers (2022-12-15 10:11:45 +0100)
11
iotests: Avoid realpath, for CentOS 6 (2018-03-19 12:01:39 +0100)
12
13
v2:
14
- Changed TSA capability name to "mutex" to work with older clang
15
versions. The tsan-build CI job succeeds now.
16
12
17
----------------------------------------------------------------
13
----------------------------------------------------------------
18
Block layer patches
14
Block layer patches
19
15
20
- Code cleanups around block graph modification
16
----------------------------------------------------------------
21
- Simplify drain
17
Eric Blake (1):
22
- coroutine_fn correctness fixes, including splitting generated
18
iotests: Avoid realpath, for CentOS 6
23
coroutine wrappers into co_wrapper (to be called only from
24
non-coroutine context) and co_wrapper_mixed (both coroutine and
25
non-coroutine context)
26
- Introduce a block graph rwlock
27
19
28
----------------------------------------------------------------
20
Fam Zheng (4):
29
Emanuele Giuseppe Esposito (21):
21
block: Fix flags in reopen queue
30
block-io: introduce coroutine_fn duplicates for bdrv_common_block_status_above callers
22
iotests: Add regression test for commit base locking
31
block-copy: add coroutine_fn annotations
23
vvfat: Fix inherit_options flags
32
nbd/server.c: add coroutine_fn annotations
24
block: Fix leak of ignore_children in error path
33
block-backend: replace bdrv_*_above with blk_*_above
34
block/vmdk: add coroutine_fn annotations
35
block: avoid duplicating filename string in bdrv_create
36
block: distinguish between bdrv_create running in coroutine and not
37
block: bdrv_create_file is a coroutine_fn
38
block: rename generated_co_wrapper in co_wrapper_mixed
39
block-coroutine-wrapper.py: introduce co_wrapper
40
block-coroutine-wrapper.py: support functions without bs arg
41
block-coroutine-wrapper.py: support also basic return types
42
block: convert bdrv_create to co_wrapper
43
block/dirty-bitmap: convert coroutine-only functions to co_wrapper
44
graph-lock: Implement guard macros
45
async: Register/unregister aiocontext in graph lock list
46
block: wrlock in bdrv_replace_child_noperm
47
block: remove unnecessary assert_bdrv_graph_writable()
48
block: assert that graph read and writes are performed correctly
49
block-coroutine-wrapper.py: introduce annotations that take the graph rdlock
50
block: use co_wrapper_mixed_bdrv_rdlock in functions taking the rdlock
51
25
52
Kevin Wolf (25):
26
Jeff Cody (1):
53
qed: Don't yield in bdrv_qed_co_drain_begin()
27
block: fix iotest 146 output expectations
54
test-bdrv-drain: Don't yield in .bdrv_co_drained_begin/end()
28
55
block: Revert .bdrv_drained_begin/end to non-coroutine_fn
29
John Snow (21):
56
block: Remove drained_end_counter
30
blockjobs: fix set-speed kick
57
block: Inline bdrv_drain_invoke()
31
blockjobs: model single jobs as transactions
58
block: Fix locking for bdrv_reopen_queue_child()
32
Blockjobs: documentation touchup
59
block: Drain individual nodes during reopen
33
blockjobs: add status enum
60
block: Don't use subtree drains in bdrv_drop_intermediate()
34
blockjobs: add state transition table
61
stream: Replace subtree drain with a single node drain
35
iotests: add pause_wait
62
block: Remove subtree drains
36
blockjobs: add block_job_verb permission table
63
block: Call drain callbacks only once
37
blockjobs: add ABORTING state
64
block: Remove ignore_bds_parents parameter from drain_begin/end.
38
blockjobs: add CONCLUDED state
65
block: Drop out of coroutine in bdrv_do_drained_begin_quiesce()
39
blockjobs: add NULL state
66
block: Don't poll in bdrv_replace_child_noperm()
40
blockjobs: add block_job_dismiss
67
block: Remove poll parameter from bdrv_parent_drained_begin_single()
41
blockjobs: ensure abort is called for cancelled jobs
68
block: Factor out bdrv_drain_all_begin_nopoll()
42
blockjobs: add commit, abort, clean helpers
69
Import clang-tsa.h
43
blockjobs: add block_job_txn_apply function
70
clang-tsa: Add TSA_ASSERT() macro
44
blockjobs: add prepare callback
71
clang-tsa: Add macros for shared locks
45
blockjobs: add waiting status
72
configure: Enable -Wthread-safety if present
46
blockjobs: add PENDING status and event
73
test-bdrv-drain: Fix incorrrect drain assumptions
47
blockjobs: add block-job-finalize
74
block: Fix locking in external_snapshot_prepare()
48
blockjobs: Expose manual property
75
graph-lock: TSA annotations for lock/unlock functions
49
iotests: test manual job dismissal
76
Mark assert_bdrv_graph_readable/writable() GRAPH_RD/WRLOCK
50
tests/test-blockjob: test cancellations
77
block: GRAPH_RDLOCK for functions only called by co_wrappers
51
52
Kevin Wolf (14):
53
luks: Separate image file creation from formatting
54
luks: Create block_crypto_co_create_generic()
55
luks: Support .bdrv_co_create
56
luks: Turn invalid assertion into check
57
luks: Catch integer overflow for huge sizes
58
qemu-iotests: Test luks QMP image creation
59
parallels: Support .bdrv_co_create
60
qemu-iotests: Enable write tests for parallels
61
qcow: Support .bdrv_co_create
62
qed: Support .bdrv_co_create
63
vdi: Make comments consistent with other drivers
64
vhdx: Support .bdrv_co_create
65
vpc: Support .bdrv_co_create
66
vpc: Require aligned size in .bdrv_co_create
67
68
Liang Li (1):
69
block/mirror: change the semantic of 'force' of block-job-cancel
70
71
Max Reitz (3):
72
vdi: Pull option parsing from vdi_co_create
73
vdi: Move file creation to vdi_co_create_opts
74
vdi: Implement .bdrv_co_create
78
75
79
Paolo Bonzini (1):
76
Paolo Bonzini (1):
80
graph-lock: Introduce a lock to protect block graph operations
77
iscsi: fix iSER compilation
81
78
82
Vladimir Sementsov-Ogievskiy (4):
79
qapi/block-core.json | 363 ++++++++++++++++++++++++++++++++++++++++--
83
block: Inline bdrv_detach_child()
80
include/block/blockjob.h | 71 ++++++++-
84
block: drop bdrv_remove_filter_or_cow_child
81
include/block/blockjob_int.h | 17 +-
85
block: bdrv_refresh_perms(): allow external tran
82
block.c | 10 +-
86
block: refactor bdrv_list_refresh_perms to allow any list of nodes
83
block/backup.c | 5 +-
84
block/commit.c | 2 +-
85
block/crypto.c | 150 ++++++++++++-----
86
block/iscsi.c | 2 +-
87
block/mirror.c | 12 +-
88
block/parallels.c | 199 +++++++++++++++++------
89
block/qcow.c | 196 +++++++++++++++--------
90
block/qed.c | 204 ++++++++++++++++--------
91
block/stream.c | 2 +-
92
block/vdi.c | 147 +++++++++++++----
93
block/vhdx.c | 216 +++++++++++++++++++------
94
block/vpc.c | 241 +++++++++++++++++++++-------
95
block/vvfat.c | 2 +-
96
blockdev.c | 71 +++++++--
97
blockjob.c | 358 +++++++++++++++++++++++++++++++++++------
98
tests/test-bdrv-drain.c | 5 +-
99
tests/test-blockjob-txn.c | 27 ++--
100
tests/test-blockjob.c | 233 ++++++++++++++++++++++++++-
101
block/trace-events | 7 +
102
hmp-commands.hx | 3 +-
103
tests/qemu-iotests/030 | 6 +-
104
tests/qemu-iotests/055 | 17 +-
105
tests/qemu-iotests/056 | 187 ++++++++++++++++++++++
106
tests/qemu-iotests/056.out | 4 +-
107
tests/qemu-iotests/109.out | 24 +--
108
tests/qemu-iotests/146.out | 2 +-
109
tests/qemu-iotests/153 | 12 ++
110
tests/qemu-iotests/153.out | 5 +
111
tests/qemu-iotests/181 | 2 +-
112
tests/qemu-iotests/210 | 210 ++++++++++++++++++++++++
113
tests/qemu-iotests/210.out | 136 ++++++++++++++++
114
tests/qemu-iotests/check | 13 +-
115
tests/qemu-iotests/common.rc | 2 +-
116
tests/qemu-iotests/group | 1 +
117
tests/qemu-iotests/iotests.py | 12 +-
118
39 files changed, 2652 insertions(+), 524 deletions(-)
119
create mode 100755 tests/qemu-iotests/210
120
create mode 100644 tests/qemu-iotests/210.out
87
121
88
docs/devel/block-coroutine-wrapper.rst | 6 +-
89
configure | 1 +
90
block/block-gen.h | 11 +-
91
block/coroutines.h | 21 +-
92
include/block/aio.h | 9 +
93
include/block/block-common.h | 27 ++-
94
include/block/block-copy.h | 5 +-
95
include/block/block-global-state.h | 15 +-
96
include/block/block-io.h | 136 +++++------
97
include/block/block_int-common.h | 49 ++--
98
include/block/block_int-global-state.h | 17 --
99
include/block/block_int-io.h | 12 -
100
include/block/block_int.h | 1 +
101
include/block/dirty-bitmap.h | 10 +-
102
include/block/graph-lock.h | 280 +++++++++++++++++++++++
103
include/qemu/clang-tsa.h | 114 ++++++++++
104
include/sysemu/block-backend-io.h | 77 ++++---
105
block.c | 404 ++++++++++++++++++---------------
106
block/block-backend.c | 25 +-
107
block/block-copy.c | 21 +-
108
block/commit.c | 4 +-
109
block/crypto.c | 2 +-
110
block/dirty-bitmap.c | 88 +------
111
block/graph-lock.c | 275 ++++++++++++++++++++++
112
block/io.c | 367 ++++++++++--------------------
113
block/parallels.c | 2 +-
114
block/qcow.c | 2 +-
115
block/qcow2.c | 4 +-
116
block/qed.c | 28 ++-
117
block/raw-format.c | 2 +-
118
block/replication.c | 6 -
119
block/stream.c | 26 ++-
120
block/throttle.c | 8 +-
121
block/vdi.c | 2 +-
122
block/vhdx.c | 2 +-
123
block/vmdk.c | 38 ++--
124
block/vpc.c | 2 +-
125
blockdev.c | 17 +-
126
blockjob.c | 2 +-
127
nbd/server.c | 47 ++--
128
stubs/graph-lock.c | 10 +
129
tests/unit/test-bdrv-drain.c | 387 +++++++++----------------------
130
util/async.c | 4 +
131
scripts/block-coroutine-wrapper.py | 133 ++++++++---
132
block/meson.build | 2 +
133
stubs/meson.build | 1 +
134
46 files changed, 1575 insertions(+), 1127 deletions(-)
135
create mode 100644 include/block/graph-lock.h
136
create mode 100644 include/qemu/clang-tsa.h
137
create mode 100644 block/graph-lock.c
138
create mode 100644 stubs/graph-lock.c
diff view generated by jsdifflib