mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
migration: Add postcopy_thread_create()
Postcopy create threads. A common manner is we init a sem and use it to sync with the thread. Namely, we have fault_thread_sem and listen_thread_sem and they're only used for this. Make it a shared infrastructure so it's easier to create yet another thread. Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Message-Id: <20220301083925.33483-7-peterx@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
parent
cfc7dc8abf
commit
095c12a4a2
4 changed files with 29 additions and 18 deletions
|
@ -70,7 +70,11 @@ struct MigrationIncomingState {
|
|||
/* A hook to allow cleanup at the end of incoming migration */
|
||||
void *transport_data;
|
||||
void (*transport_cleanup)(void *data);
|
||||
|
||||
/*
|
||||
* Used to sync thread creations. Note that we can't create threads in
|
||||
* parallel with this sem.
|
||||
*/
|
||||
QemuSemaphore thread_sync_sem;
|
||||
/*
|
||||
* Free at the start of the main state load, set as the main thread finishes
|
||||
* loading state.
|
||||
|
@ -83,13 +87,11 @@ struct MigrationIncomingState {
|
|||
size_t largest_page_size;
|
||||
bool have_fault_thread;
|
||||
QemuThread fault_thread;
|
||||
QemuSemaphore fault_thread_sem;
|
||||
/* Set this when we want the fault thread to quit */
|
||||
bool fault_thread_quit;
|
||||
|
||||
bool have_listen_thread;
|
||||
QemuThread listen_thread;
|
||||
QemuSemaphore listen_thread_sem;
|
||||
|
||||
/* For the kernel to send us notifications */
|
||||
int userfault_fd;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue