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 |