Lines Matching full:sync

244 	struct sync_area *sync;  in prepare_vm()  local
311 sync = (typeof(sync))vm_gpa2hva(data, MEM_SYNC_GPA, NULL); in prepare_vm()
312 atomic_init(&sync->start_flag, false); in prepare_vm()
313 atomic_init(&sync->exit_flag, false); in prepare_vm()
314 atomic_init(&sync->sync_flag, false); in prepare_vm()
343 static void let_guest_run(struct sync_area *sync) in let_guest_run() argument
345 atomic_store_explicit(&sync->start_flag, true, memory_order_release); in let_guest_run()
350 struct sync_area *sync = (typeof(sync))MEM_SYNC_GPA; in guest_spin_until_start() local
352 while (!atomic_load_explicit(&sync->start_flag, memory_order_acquire)) in guest_spin_until_start()
356 static void make_guest_exit(struct sync_area *sync) in make_guest_exit() argument
358 atomic_store_explicit(&sync->exit_flag, true, memory_order_release); in make_guest_exit()
363 struct sync_area *sync = (typeof(sync))MEM_SYNC_GPA; in _guest_should_exit() local
365 return atomic_load_explicit(&sync->exit_flag, memory_order_acquire); in _guest_should_exit()
376 static noinline void host_perform_sync(struct sync_area *sync) in host_perform_sync() argument
380 atomic_store_explicit(&sync->sync_flag, true, memory_order_release); in host_perform_sync()
381 while (atomic_load_explicit(&sync->sync_flag, memory_order_acquire)) in host_perform_sync()
389 struct sync_area *sync = (typeof(sync))MEM_SYNC_GPA; in guest_perform_sync() local
397 } while (!atomic_compare_exchange_weak_explicit(&sync->sync_flag, in guest_perform_sync()
407 struct sync_area *sync = (typeof(sync))MEM_SYNC_GPA; in guest_code_test_memslot_move() local
408 uintptr_t base = (typeof(base))READ_ONCE(sync->move_area_ptr); in guest_code_test_memslot_move()
422 * No host sync here since the MMIO exits are so expensive in guest_code_test_memslot_move()
435 struct sync_area *sync = (typeof(sync))MEM_SYNC_GPA; in guest_code_test_memslot_map() local
464 struct sync_area *sync = (typeof(sync))MEM_SYNC_GPA; in guest_code_test_memslot_unmap() local
475 * per host sync as otherwise the host will spend in guest_code_test_memslot_unmap()
529 struct sync_area *sync, in test_memslot_move_prepare() argument
547 sync->move_area_ptr = (void *)movetestgpa; in test_memslot_move_prepare()
559 struct sync_area *sync, in test_memslot_move_prepare_active() argument
562 return test_memslot_move_prepare(data, sync, maxslots, true); in test_memslot_move_prepare_active()
566 struct sync_area *sync, in test_memslot_move_prepare_inactive() argument
569 return test_memslot_move_prepare(data, sync, maxslots, false); in test_memslot_move_prepare_inactive()
572 static void test_memslot_move_loop(struct vm_data *data, struct sync_area *sync) in test_memslot_move_loop() argument
623 static void test_memslot_map_loop(struct vm_data *data, struct sync_area *sync) in test_memslot_map_loop() argument
639 host_perform_sync(sync); in test_memslot_map_loop()
656 host_perform_sync(sync); in test_memslot_map_loop()
664 struct sync_area *sync, in test_memslot_unmap_loop_common() argument
676 host_perform_sync(sync); in test_memslot_unmap_loop_common()
682 host_perform_sync(sync); in test_memslot_unmap_loop_common()
691 struct sync_area *sync) in test_memslot_unmap_loop() argument
693 test_memslot_unmap_loop_common(data, sync, 1); in test_memslot_unmap_loop()
697 struct sync_area *sync) in test_memslot_unmap_loop_chunked() argument
699 test_memslot_unmap_loop_common(data, sync, MEM_TEST_UNMAP_CHUNK_PAGES); in test_memslot_unmap_loop_chunked()
702 static void test_memslot_rw_loop(struct vm_data *data, struct sync_area *sync) in test_memslot_rw_loop() argument
710 host_perform_sync(sync); in test_memslot_rw_loop()
723 host_perform_sync(sync); in test_memslot_rw_loop()
730 bool (*prepare)(struct vm_data *data, struct sync_area *sync,
732 void (*loop)(struct vm_data *data, struct sync_area *sync);
744 struct sync_area *sync; in test_execute() local
755 sync = (typeof(sync))vm_gpa2hva(data, MEM_SYNC_GPA, NULL); in test_execute()
758 !tdata->prepare(data, sync, maxslots)) { in test_execute()
766 let_guest_run(sync); in test_execute()
773 tdata->loop(data, sync); in test_execute()
778 make_guest_exit(sync); in test_execute()