bf251437e9
Many changes were necessary this time around: * QAPI was changed to avoid redundant has_* variables, see commit 44ea9d9be3 ("qapi: Start to elide redundant has_FOO in generated C") for details. This affected many QMP commands added by Proxmox too. * Pending querying for migration got split into two functions, one to estimate, one for exact value, see commit c8df4a7aef ("migration: Split save_live_pending() into state_pending_*") for details. Relevant for savevm-async and PBS dirty bitmap. * Some block (driver) functions got converted to coroutines, so the Proxmox block drivers needed to be adapted. * Alloc track auto-detaching during PBS live restore got broken by AioContext-related changes resulting in a deadlock. The current, hacky method was replaced by a simpler one. Stefan apparently ran into a problem with that when he wrote the driver, but there were improvements in the stream job code since then and I didn't manage to reproduce the issue. It's a separate patch "alloc-track: fix deadlock during drop" for now, you can find the details there. * Async snapshot-related changes: - The pending querying got adapted to the above-mentioned split and a patch is added to optimize it/make it more similar to what upstream code does. - Added initialization of the compression counters (for future-proofing). - It's necessary the hold the BQL (big QEMU lock = iothread mutex) during the setup phase, because block layer functions are used there and not doing so leads to racy, hard-to-debug crashes or hangs. It's necessary to change some upstream code too for this, a version of the patch "migration: for snapshots, hold the BQL during setup callbacks" is intended to be upstreamed. - Need to take the bdrv graph read lock before flushing. * hmp_info_balloon was moved to a different file. * Needed to include a new headers from time to time to still get the correct functions. Signed-off-by: Fiona Ebner <f.ebner@proxmox.com> |
||
---|---|---|
.. | ||
0001-PVE-Config-block-file-change-locking-default-to-off.patch | ||
0002-PVE-Config-Adjust-network-script-path-to-etc-kvm.patch | ||
0003-PVE-Config-set-the-CPU-model-to-kvm64-32-instead-of-.patch | ||
0004-PVE-Config-ui-spice-default-to-pve-certificates.patch | ||
0005-PVE-Config-glusterfs-no-default-logfile-if-daemonize.patch | ||
0006-PVE-Config-rbd-block-rbd-disable-rbd_cache_writethro.patch | ||
0007-PVE-Up-qmp-add-get_link_status.patch | ||
0008-PVE-Up-glusterfs-allow-partial-reads.patch | ||
0009-PVE-Up-qemu-img-return-success-on-info-without-snaps.patch | ||
0010-PVE-Up-qemu-img-dd-add-osize-and-read-from-to-stdin-.patch | ||
0011-PVE-Up-qemu-img-dd-add-isize-parameter.patch | ||
0012-PVE-Up-qemu-img-dd-add-n-skip_create.patch | ||
0013-PVE-virtio-balloon-improve-query-balloon.patch | ||
0014-PVE-qapi-modify-query-machines.patch | ||
0015-PVE-qapi-modify-spice-query.patch | ||
0016-PVE-add-IOChannel-implementation-for-savevm-async.patch | ||
0017-PVE-add-savevm-async-for-background-state-snapshots.patch | ||
0018-PVE-add-optional-buffer-size-to-QEMUFile.patch | ||
0019-PVE-block-add-the-zeroinit-block-driver-filter.patch | ||
0020-PVE-Add-dummy-id-command-line-parameter.patch | ||
0021-PVE-Config-Revert-target-i386-disable-LINT0-after-re.patch | ||
0022-PVE-Up-Config-file-posix-make-locking-optiono-on-cre.patch | ||
0023-PVE-monitor-disable-oob-capability.patch | ||
0024-PVE-Compat-4.0-used-balloon-qemu-4-0-config-size-fal.patch | ||
0025-PVE-Allow-version-code-in-machine-type.patch | ||
0026-block-backup-move-bcs-bitmap-initialization-to-job-c.patch | ||
0027-PVE-Backup-add-vma-backup-format-code.patch | ||
0028-PVE-Backup-add-backup-dump-block-driver.patch | ||
0029-PVE-Backup-proxmox-backup-patches-for-qemu.patch | ||
0030-PVE-Backup-pbs-restore-new-command-to-restore-from-p.patch | ||
0031-PVE-Backup-Add-dirty-bitmap-tracking-for-incremental.patch | ||
0032-PVE-various-PBS-fixes.patch | ||
0033-PVE-Add-PBS-block-driver-to-map-backup-archives-into.patch | ||
0034-PVE-add-query_proxmox_support-QMP-command.patch | ||
0035-PVE-add-query-pbs-bitmap-info-QMP-call.patch | ||
0036-PVE-redirect-stderr-to-journal-when-daemonized.patch | ||
0037-PVE-Add-sequential-job-transaction-support.patch | ||
0038-PVE-Backup-Use-a-transaction-to-synchronize-job-stat.patch | ||
0039-PVE-Backup-Don-t-block-on-finishing-and-cleanup-crea.patch | ||
0040-PVE-Migrate-dirty-bitmap-state-via-savevm.patch | ||
0041-migration-block-dirty-bitmap-migrate-other-bitmaps-e.patch | ||
0042-PVE-fall-back-to-open-iscsi-initiatorname.patch | ||
0043-PVE-Use-coroutine-QMP-for-backup-cancel_backup.patch | ||
0044-PBS-add-master-key-support.patch | ||
0045-PVE-block-pbs-fast-path-reads-without-allocation-if-.patch | ||
0046-PVE-block-stream-increase-chunk-size.patch | ||
0047-block-io-accept-NULL-qiov-in-bdrv_pad_request.patch | ||
0048-block-add-alloc-track-driver.patch | ||
0049-PVE-savevm-async-register-yank-before-migration_inco.patch | ||
0050-qemu-img-dd-add-l-option-for-loading-a-snapshot.patch | ||
0051-vma-allow-partial-restore.patch | ||
0052-pbs-namespace-support.patch | ||
0053-Revert-block-rbd-workaround-for-ceph-issue-53784.patch | ||
0054-Revert-block-rbd-fix-handling-of-holes-in-.bdrv_co_b.patch | ||
0055-Revert-block-rbd-implement-bdrv_co_block_status.patch | ||
0056-PVE-Backup-create-jobs-correctly-cancel-in-error-sce.patch | ||
0057-PVE-Backup-ensure-jobs-in-di_list-are-referenced.patch | ||
0058-PVE-Backup-avoid-segfault-issues-upon-backup-cancel.patch | ||
0059-vma-create-support-64KiB-unaligned-input-images.patch | ||
0060-vma-create-avoid-triggering-assertion-in-error-case.patch | ||
0061-block-alloc-track-avoid-premature-break.patch | ||
0062-PVE-Backup-allow-passing-max-workers-performance-set.patch | ||
0063-alloc-track-fix-deadlock-during-drop.patch | ||
0064-savevm-async-optimize-querying-pending.patch | ||
0065-savevm-async-also-initialize-compression-counters.patch | ||
0066-migration-for-snapshots-hold-the-BQL-during-setup-ca.patch | ||
0067-savevm-async-don-t-hold-BQL-during-setup.patch |