Lines Matching defs:sync

149 				"Unexpected sync ucall, got %lx",
288 struct sync_area *sync;
349 sync = (typeof(sync))vm_gpa2hva(data, MEM_SYNC_GPA, NULL);
350 sync->guest_page_size = data->vm->page_size;
351 atomic_init(&sync->start_flag, false);
352 atomic_init(&sync->exit_flag, false);
353 atomic_init(&sync->sync_flag, false);
382 static void let_guest_run(struct sync_area *sync)
384 atomic_store_explicit(&sync->start_flag, true, memory_order_release);
389 struct sync_area *sync = (typeof(sync))MEM_SYNC_GPA;
391 while (!atomic_load_explicit(&sync->start_flag, memory_order_acquire))
395 static void make_guest_exit(struct sync_area *sync)
397 atomic_store_explicit(&sync->exit_flag, true, memory_order_release);
402 struct sync_area *sync = (typeof(sync))MEM_SYNC_GPA;
404 return atomic_load_explicit(&sync->exit_flag, memory_order_acquire);
415 static noinline void host_perform_sync(struct sync_area *sync)
419 atomic_store_explicit(&sync->sync_flag, true, memory_order_release);
420 while (atomic_load_explicit(&sync->sync_flag, memory_order_acquire))
428 struct sync_area *sync = (typeof(sync))MEM_SYNC_GPA;
436 } while (!atomic_compare_exchange_weak_explicit(&sync->sync_flag,
446 struct sync_area *sync = (typeof(sync))MEM_SYNC_GPA;
447 uint32_t page_size = (typeof(page_size))READ_ONCE(sync->guest_page_size);
448 uintptr_t base = (typeof(base))READ_ONCE(sync->move_area_ptr);
462 * No host sync here since the MMIO exits are so expensive
475 struct sync_area *sync = (typeof(sync))MEM_SYNC_GPA;
476 uint32_t page_size = (typeof(page_size))READ_ONCE(sync->guest_page_size);
507 struct sync_area *sync = (typeof(sync))MEM_SYNC_GPA;
518 * per host sync as otherwise the host will spend
542 struct sync_area *sync = (typeof(sync))MEM_SYNC_GPA;
543 uint32_t page_size = (typeof(page_size))READ_ONCE(sync->guest_page_size);
575 struct sync_area *sync,
594 sync->move_area_ptr = (void *)movetestgpa;
606 struct sync_area *sync,
609 return test_memslot_move_prepare(data, sync, maxslots, true);
613 struct sync_area *sync,
616 return test_memslot_move_prepare(data, sync, maxslots, false);
619 static void test_memslot_move_loop(struct vm_data *data, struct sync_area *sync)
672 static void test_memslot_map_loop(struct vm_data *data, struct sync_area *sync)
690 host_perform_sync(sync);
705 host_perform_sync(sync);
711 struct sync_area *sync,
725 host_perform_sync(sync);
731 host_perform_sync(sync);
738 struct sync_area *sync)
745 test_memslot_unmap_loop_common(data, sync, guest_chunk_pages);
749 struct sync_area *sync)
754 test_memslot_unmap_loop_common(data, sync, guest_chunk_pages);
757 static void test_memslot_rw_loop(struct vm_data *data, struct sync_area *sync)
766 host_perform_sync(sync);
779 host_perform_sync(sync);
786 bool (*prepare)(struct vm_data *data, struct sync_area *sync,
788 void (*loop)(struct vm_data *data, struct sync_area *sync);
800 struct sync_area *sync;
811 sync = (typeof(sync))vm_gpa2hva(data, MEM_SYNC_GPA, NULL);
813 !tdata->prepare(data, sync, maxslots)) {
821 let_guest_run(sync);
828 tdata->loop(data, sync);
833 make_guest_exit(sync);