Lines Matching refs:vcpu
226 int kvm_io_bus_write(struct kvm_vcpu *vcpu, enum kvm_bus bus_idx, gpa_t addr,
228 int kvm_io_bus_write_cookie(struct kvm_vcpu *vcpu, enum kvm_bus bus_idx,
230 int kvm_io_bus_read(struct kvm_vcpu *vcpu, enum kvm_bus bus_idx, gpa_t addr,
244 struct kvm_vcpu *vcpu; member
252 void kvm_clear_async_pf_completion_queue(struct kvm_vcpu *vcpu);
253 void kvm_check_async_pf_completion(struct kvm_vcpu *vcpu);
254 bool kvm_setup_async_pf(struct kvm_vcpu *vcpu, gpa_t cr2_or_gpa,
256 int kvm_async_pf_wakeup_all(struct kvm_vcpu *vcpu);
564 static inline int kvm_vcpu_exiting_guest_mode(struct kvm_vcpu *vcpu) in kvm_vcpu_exiting_guest_mode() argument
572 return cmpxchg(&vcpu->mode, IN_GUEST_MODE, EXITING_GUEST_MODE); in kvm_vcpu_exiting_guest_mode()
653 u32 vcpu; member
716 static inline int kvm_arch_vcpu_memslots_id(struct kvm_vcpu *vcpu) in kvm_arch_vcpu_memslots_id() argument
883 #define vcpu_unimpl(vcpu, fmt, ...) \ argument
885 (vcpu)->vcpu_id, kvm_rip_read(vcpu), ## __VA_ARGS__)
887 #define vcpu_debug(vcpu, fmt, ...) \ argument
888 kvm_debug("vcpu%i " fmt, (vcpu)->vcpu_id, ## __VA_ARGS__)
889 #define vcpu_debug_ratelimited(vcpu, fmt, ...) \ argument
890 kvm_debug_ratelimited("vcpu%i " fmt, (vcpu)->vcpu_id, \
892 #define vcpu_err(vcpu, fmt, ...) \ argument
893 kvm_err("vcpu%i " fmt, (vcpu)->vcpu_id, ## __VA_ARGS__)
945 static inline void kvm_vcpu_srcu_read_lock(struct kvm_vcpu *vcpu) in kvm_vcpu_srcu_read_lock() argument
948 WARN_ONCE(vcpu->srcu_depth++, in kvm_vcpu_srcu_read_lock()
949 "KVM: Illegal vCPU srcu_idx LOCK, depth=%d", vcpu->srcu_depth - 1); in kvm_vcpu_srcu_read_lock()
951 vcpu->____srcu_idx = srcu_read_lock(&vcpu->kvm->srcu); in kvm_vcpu_srcu_read_lock()
954 static inline void kvm_vcpu_srcu_read_unlock(struct kvm_vcpu *vcpu) in kvm_vcpu_srcu_read_unlock() argument
956 srcu_read_unlock(&vcpu->kvm->srcu, vcpu->____srcu_idx); in kvm_vcpu_srcu_read_unlock()
959 WARN_ONCE(--vcpu->srcu_depth, in kvm_vcpu_srcu_read_unlock()
960 "KVM: Illegal vCPU srcu_idx UNLOCK, depth=%d", vcpu->srcu_depth); in kvm_vcpu_srcu_read_unlock()
1001 struct kvm_vcpu *vcpu = NULL; in kvm_get_vcpu_by_id() local
1007 vcpu = kvm_get_vcpu(kvm, id); in kvm_get_vcpu_by_id()
1008 if (vcpu && vcpu->vcpu_id == id) in kvm_get_vcpu_by_id()
1009 return vcpu; in kvm_get_vcpu_by_id()
1010 kvm_for_each_vcpu(i, vcpu, kvm) in kvm_get_vcpu_by_id()
1011 if (vcpu->vcpu_id == id) in kvm_get_vcpu_by_id()
1012 return vcpu; in kvm_get_vcpu_by_id()
1018 void vcpu_load(struct kvm_vcpu *vcpu);
1019 void vcpu_put(struct kvm_vcpu *vcpu);
1068 static inline struct kvm_memslots *kvm_vcpu_memslots(struct kvm_vcpu *vcpu) in kvm_vcpu_memslots() argument
1070 int as_id = kvm_arch_vcpu_memslots_id(vcpu); in kvm_vcpu_memslots()
1072 return __kvm_memslots(vcpu->kvm, as_id); in kvm_vcpu_memslots()
1326 bool kvm_vcpu_is_visible_gfn(struct kvm_vcpu *vcpu, gfn_t gfn);
1327 unsigned long kvm_host_page_size(struct kvm_vcpu *vcpu, gfn_t gfn);
1331 struct kvm_memslots *kvm_vcpu_memslots(struct kvm_vcpu *vcpu);
1332 struct kvm_memory_slot *kvm_vcpu_gfn_to_memslot(struct kvm_vcpu *vcpu, gfn_t gfn);
1333 int kvm_vcpu_map(struct kvm_vcpu *vcpu, gpa_t gpa, struct kvm_host_map *map);
1334 void kvm_vcpu_unmap(struct kvm_vcpu *vcpu, struct kvm_host_map *map, bool dirty);
1335 unsigned long kvm_vcpu_gfn_to_hva(struct kvm_vcpu *vcpu, gfn_t gfn);
1336 unsigned long kvm_vcpu_gfn_to_hva_prot(struct kvm_vcpu *vcpu, gfn_t gfn, bool *writable);
1337 int kvm_vcpu_read_guest_page(struct kvm_vcpu *vcpu, gfn_t gfn, void *data, int offset,
1339 int kvm_vcpu_read_guest_atomic(struct kvm_vcpu *vcpu, gpa_t gpa, void *data,
1341 int kvm_vcpu_read_guest(struct kvm_vcpu *vcpu, gpa_t gpa, void *data,
1343 int kvm_vcpu_write_guest_page(struct kvm_vcpu *vcpu, gfn_t gfn, const void *data,
1345 int kvm_vcpu_write_guest(struct kvm_vcpu *vcpu, gpa_t gpa, const void *data,
1347 void kvm_vcpu_mark_page_dirty(struct kvm_vcpu *vcpu, gfn_t gfn);
1451 void kvm_sigset_activate(struct kvm_vcpu *vcpu);
1452 void kvm_sigset_deactivate(struct kvm_vcpu *vcpu);
1454 void kvm_vcpu_halt(struct kvm_vcpu *vcpu);
1455 bool kvm_vcpu_block(struct kvm_vcpu *vcpu);
1456 void kvm_arch_vcpu_blocking(struct kvm_vcpu *vcpu);
1457 void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu);
1458 bool kvm_vcpu_wake_up(struct kvm_vcpu *vcpu);
1459 void kvm_vcpu_kick(struct kvm_vcpu *vcpu);
1461 void kvm_vcpu_on_spin(struct kvm_vcpu *vcpu, bool yield_to_kernel_mode);
1485 vm_fault_t kvm_arch_vcpu_fault(struct kvm_vcpu *vcpu, struct vm_fault *vmf);
1509 int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu);
1510 int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu);
1512 int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
1515 int kvm_arch_vcpu_ioctl_get_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs);
1516 int kvm_arch_vcpu_ioctl_set_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs);
1517 int kvm_arch_vcpu_ioctl_get_sregs(struct kvm_vcpu *vcpu,
1519 int kvm_arch_vcpu_ioctl_set_sregs(struct kvm_vcpu *vcpu,
1521 int kvm_arch_vcpu_ioctl_get_mpstate(struct kvm_vcpu *vcpu,
1523 int kvm_arch_vcpu_ioctl_set_mpstate(struct kvm_vcpu *vcpu,
1525 int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,
1527 int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu);
1529 void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu);
1530 void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu);
1532 int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu);
1533 void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu);
1534 void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu);
1541 void kvm_arch_create_vcpu_debugfs(struct kvm_vcpu *vcpu, struct dentry *debugfs_dentry);
1543 static inline void kvm_create_vcpu_debugfs(struct kvm_vcpu *vcpu) {} in kvm_create_vcpu_debugfs() argument
1564 int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu);
1565 bool kvm_arch_vcpu_in_kernel(struct kvm_vcpu *vcpu);
1566 int kvm_arch_vcpu_should_kick(struct kvm_vcpu *vcpu);
1567 bool kvm_arch_dy_runnable(struct kvm_vcpu *vcpu);
1568 bool kvm_arch_dy_has_pending_interrupt(struct kvm_vcpu *vcpu);
1569 bool kvm_arch_vcpu_preempted_in_kernel(struct kvm_vcpu *vcpu);
1678 static inline struct rcuwait *kvm_arch_vcpu_get_wait(struct kvm_vcpu *vcpu) in kvm_arch_vcpu_get_wait() argument
1681 return vcpu->arch.waitp; in kvm_arch_vcpu_get_wait()
1683 return &vcpu->wait; in kvm_arch_vcpu_get_wait()
1691 static inline bool __kvm_vcpu_wake_up(struct kvm_vcpu *vcpu) in __kvm_vcpu_wake_up() argument
1693 return !!rcuwait_wake_up(kvm_arch_vcpu_get_wait(vcpu)); in __kvm_vcpu_wake_up()
1696 static inline bool kvm_vcpu_is_blocking(struct kvm_vcpu *vcpu) in kvm_vcpu_is_blocking() argument
1698 return rcuwait_active(kvm_arch_vcpu_get_wait(vcpu)); in kvm_vcpu_is_blocking()
1716 unsigned long kvm_arch_vcpu_get_ip(struct kvm_vcpu *vcpu);
1729 int kvm_cpu_has_pending_timer(struct kvm_vcpu *vcpu);
2213 static inline void __kvm_make_request(int req, struct kvm_vcpu *vcpu) in __kvm_make_request() argument
2220 set_bit(req & KVM_REQUEST_MASK, (void *)&vcpu->requests); in __kvm_make_request()
2223 static __always_inline void kvm_make_request(int req, struct kvm_vcpu *vcpu) in kvm_make_request() argument
2233 __kvm_make_request(req, vcpu); in kvm_make_request()
2236 static inline bool kvm_request_pending(struct kvm_vcpu *vcpu) in kvm_request_pending() argument
2238 return READ_ONCE(vcpu->requests); in kvm_request_pending()
2241 static inline bool kvm_test_request(int req, struct kvm_vcpu *vcpu) in kvm_test_request() argument
2243 return test_bit(req & KVM_REQUEST_MASK, (void *)&vcpu->requests); in kvm_test_request()
2246 static inline void kvm_clear_request(int req, struct kvm_vcpu *vcpu) in kvm_clear_request() argument
2248 clear_bit(req & KVM_REQUEST_MASK, (void *)&vcpu->requests); in kvm_clear_request()
2251 static inline bool kvm_check_request(int req, struct kvm_vcpu *vcpu) in kvm_check_request() argument
2253 if (kvm_test_request(req, vcpu)) { in kvm_check_request()
2254 kvm_clear_request(req, vcpu); in kvm_check_request()
2337 static inline void kvm_vcpu_set_in_spin_loop(struct kvm_vcpu *vcpu, bool val) in kvm_vcpu_set_in_spin_loop() argument
2339 vcpu->spin_loop.in_spin_loop = val; in kvm_vcpu_set_in_spin_loop()
2341 static inline void kvm_vcpu_set_dy_eligible(struct kvm_vcpu *vcpu, bool val) in kvm_vcpu_set_dy_eligible() argument
2343 vcpu->spin_loop.dy_eligible = val; in kvm_vcpu_set_dy_eligible()
2348 static inline void kvm_vcpu_set_in_spin_loop(struct kvm_vcpu *vcpu, bool val) in kvm_vcpu_set_in_spin_loop() argument
2352 static inline void kvm_vcpu_set_dy_eligible(struct kvm_vcpu *vcpu, bool val) in kvm_vcpu_set_dy_eligible() argument
2382 static inline bool vcpu_valid_wakeup(struct kvm_vcpu *vcpu) in vcpu_valid_wakeup() argument
2384 return vcpu->valid_wakeup; in vcpu_valid_wakeup()
2388 static inline bool vcpu_valid_wakeup(struct kvm_vcpu *vcpu) in vcpu_valid_wakeup() argument
2396 bool kvm_arch_no_poll(struct kvm_vcpu *vcpu);
2398 static inline bool kvm_arch_no_poll(struct kvm_vcpu *vcpu) in kvm_arch_no_poll() argument
2419 int kvm_arch_vcpu_run_pid_change(struct kvm_vcpu *vcpu);
2421 static inline int kvm_arch_vcpu_run_pid_change(struct kvm_vcpu *vcpu) in kvm_arch_vcpu_run_pid_change() argument
2428 static inline void kvm_handle_signal_exit(struct kvm_vcpu *vcpu) in kvm_handle_signal_exit() argument
2430 vcpu->run->exit_reason = KVM_EXIT_INTR; in kvm_handle_signal_exit()
2431 vcpu->stat.signal_exits++; in kvm_handle_signal_exit()
2458 static inline void kvm_prepare_memory_fault_exit(struct kvm_vcpu *vcpu, in kvm_prepare_memory_fault_exit() argument
2463 vcpu->run->exit_reason = KVM_EXIT_MEMORY_FAULT; in kvm_prepare_memory_fault_exit()
2464 vcpu->run->memory_fault.gpa = gpa; in kvm_prepare_memory_fault_exit()
2465 vcpu->run->memory_fault.size = size; in kvm_prepare_memory_fault_exit()
2468 vcpu->run->memory_fault.flags = 0; in kvm_prepare_memory_fault_exit()
2470 vcpu->run->memory_fault.flags |= KVM_MEMORY_EXIT_FLAG_PRIVATE; in kvm_prepare_memory_fault_exit()
2549 long kvm_arch_vcpu_pre_fault_memory(struct kvm_vcpu *vcpu,