mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00
migration: Centralize BH creation and dispatch
Now that the migration state reference counting is correct, further wrap the bottom half dispatch process to avoid future issues. Move BH creation and scheduling together and wrap the dispatch with an intermediary function that will ensure we always keep the ref/unref balanced. Also move the responsibility of deleting the BH into the wrapper and remove the now unnecessary pointers. Signed-off-by: Fabiano Rosas <farosas@suse.de> Link: https://lore.kernel.org/r/20240119233922.32588-6-farosas@suse.de Signed-off-by: Peter Xu <peterx@redhat.com>
This commit is contained in:
parent
699d9476a0
commit
44d0d456d7
3 changed files with 40 additions and 37 deletions
|
@ -159,8 +159,6 @@ struct MigrationIncomingState {
|
|||
/* PostCopyFD's for external userfaultfds & handlers of shared memory */
|
||||
GArray *postcopy_remote_fds;
|
||||
|
||||
QEMUBH *bh;
|
||||
|
||||
int state;
|
||||
|
||||
/*
|
||||
|
@ -255,8 +253,6 @@ struct MigrationState {
|
|||
|
||||
/*< public >*/
|
||||
QemuThread thread;
|
||||
QEMUBH *vm_start_bh;
|
||||
QEMUBH *cleanup_bh;
|
||||
/* Protected by qemu_file_lock */
|
||||
QEMUFile *to_dst_file;
|
||||
/* Postcopy specific transfer channel */
|
||||
|
@ -528,6 +524,7 @@ int foreach_not_ignored_block(RAMBlockIterFunc func, void *opaque);
|
|||
void migration_make_urgent_request(void);
|
||||
void migration_consume_urgent_request(void);
|
||||
bool migration_rate_limit(void);
|
||||
void migration_bh_schedule(QEMUBHFunc *cb, void *opaque);
|
||||
void migration_cancel(const Error *error);
|
||||
|
||||
void migration_populate_vfio_info(MigrationInfo *info);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue