Lines Matching full:cpu
14 #include "accel/accel-cpu-ops.h"
24 CPUState *cpu = arg; in whpx_cpu_thread_fn() local
30 qemu_thread_get_self(cpu->thread); in whpx_cpu_thread_fn()
31 cpu->thread_id = qemu_get_thread_id(); in whpx_cpu_thread_fn()
32 current_cpu = cpu; in whpx_cpu_thread_fn()
34 r = whpx_init_vcpu(cpu); in whpx_cpu_thread_fn()
40 /* signal CPU creation */ in whpx_cpu_thread_fn()
41 cpu_thread_signal_created(cpu); in whpx_cpu_thread_fn()
42 qemu_guest_random_seed_thread_part2(cpu->random_seed); in whpx_cpu_thread_fn()
45 if (cpu_can_run(cpu)) { in whpx_cpu_thread_fn()
46 r = whpx_vcpu_exec(cpu); in whpx_cpu_thread_fn()
48 cpu_handle_guest_debug(cpu); in whpx_cpu_thread_fn()
51 while (cpu_thread_is_idle(cpu)) { in whpx_cpu_thread_fn()
52 qemu_cond_wait_bql(cpu->halt_cond); in whpx_cpu_thread_fn()
54 qemu_wait_io_event_common(cpu); in whpx_cpu_thread_fn()
55 } while (!cpu->unplug || cpu_can_run(cpu)); in whpx_cpu_thread_fn()
57 whpx_destroy_vcpu(cpu); in whpx_cpu_thread_fn()
58 cpu_thread_signal_destroyed(cpu); in whpx_cpu_thread_fn()
64 static void whpx_start_vcpu_thread(CPUState *cpu) in whpx_start_vcpu_thread() argument
68 snprintf(thread_name, VCPU_THREAD_NAME_SIZE, "CPU %d/WHPX", in whpx_start_vcpu_thread()
69 cpu->cpu_index); in whpx_start_vcpu_thread()
70 qemu_thread_create(cpu->thread, thread_name, whpx_cpu_thread_fn, in whpx_start_vcpu_thread()
71 cpu, QEMU_THREAD_JOINABLE); in whpx_start_vcpu_thread()
74 static void whpx_kick_vcpu_thread(CPUState *cpu) in whpx_kick_vcpu_thread() argument
76 if (!qemu_cpu_is_self(cpu)) { in whpx_kick_vcpu_thread()
77 whpx_vcpu_kick(cpu); in whpx_kick_vcpu_thread()
81 static bool whpx_vcpu_thread_is_idle(CPUState *cpu) in whpx_vcpu_thread_is_idle() argument