diff options
Diffstat (limited to 'arch/powerpc/include/asm/kvm_host.h')
-rw-r--r-- | arch/powerpc/include/asm/kvm_host.h | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h index cc22b282d755..bf8af5d5d5dc 100644 --- a/arch/powerpc/include/asm/kvm_host.h +++ b/arch/powerpc/include/asm/kvm_host.h | |||
@@ -198,21 +198,29 @@ struct kvm_arch { | |||
198 | */ | 198 | */ |
199 | struct kvmppc_vcore { | 199 | struct kvmppc_vcore { |
200 | int n_runnable; | 200 | int n_runnable; |
201 | int n_blocked; | 201 | int n_busy; |
202 | int num_threads; | 202 | int num_threads; |
203 | int entry_exit_count; | 203 | int entry_exit_count; |
204 | int n_woken; | 204 | int n_woken; |
205 | int nap_count; | 205 | int nap_count; |
206 | int napping_threads; | ||
206 | u16 pcpu; | 207 | u16 pcpu; |
207 | u8 vcore_running; | 208 | u8 vcore_state; |
208 | u8 in_guest; | 209 | u8 in_guest; |
209 | struct list_head runnable_threads; | 210 | struct list_head runnable_threads; |
210 | spinlock_t lock; | 211 | spinlock_t lock; |
212 | wait_queue_head_t wq; | ||
211 | }; | 213 | }; |
212 | 214 | ||
213 | #define VCORE_ENTRY_COUNT(vc) ((vc)->entry_exit_count & 0xff) | 215 | #define VCORE_ENTRY_COUNT(vc) ((vc)->entry_exit_count & 0xff) |
214 | #define VCORE_EXIT_COUNT(vc) ((vc)->entry_exit_count >> 8) | 216 | #define VCORE_EXIT_COUNT(vc) ((vc)->entry_exit_count >> 8) |
215 | 217 | ||
218 | /* Values for vcore_state */ | ||
219 | #define VCORE_INACTIVE 0 | ||
220 | #define VCORE_RUNNING 1 | ||
221 | #define VCORE_EXITING 2 | ||
222 | #define VCORE_SLEEPING 3 | ||
223 | |||
216 | struct kvmppc_pte { | 224 | struct kvmppc_pte { |
217 | ulong eaddr; | 225 | ulong eaddr; |
218 | u64 vpage; | 226 | u64 vpage; |
@@ -258,14 +266,6 @@ struct kvm_vcpu_arch { | |||
258 | ulong host_stack; | 266 | ulong host_stack; |
259 | u32 host_pid; | 267 | u32 host_pid; |
260 | #ifdef CONFIG_PPC_BOOK3S | 268 | #ifdef CONFIG_PPC_BOOK3S |
261 | ulong host_msr; | ||
262 | ulong host_r2; | ||
263 | void *host_retip; | ||
264 | ulong trampoline_lowmem; | ||
265 | ulong trampoline_enter; | ||
266 | ulong highmem_handler; | ||
267 | ulong rmcall; | ||
268 | ulong host_paca_phys; | ||
269 | struct kvmppc_slb slb[64]; | 269 | struct kvmppc_slb slb[64]; |
270 | int slb_max; /* 1 + index of last valid entry in slb[] */ | 270 | int slb_max; /* 1 + index of last valid entry in slb[] */ |
271 | int slb_nr; /* total number of entries in SLB */ | 271 | int slb_nr; /* total number of entries in SLB */ |
@@ -389,6 +389,9 @@ struct kvm_vcpu_arch { | |||
389 | u8 dcr_is_write; | 389 | u8 dcr_is_write; |
390 | u8 osi_needed; | 390 | u8 osi_needed; |
391 | u8 osi_enabled; | 391 | u8 osi_enabled; |
392 | u8 papr_enabled; | ||
393 | u8 sane; | ||
394 | u8 cpu_type; | ||
392 | u8 hcall_needed; | 395 | u8 hcall_needed; |
393 | 396 | ||
394 | u32 cpr0_cfgaddr; /* holds the last set cpr0_cfgaddr */ | 397 | u32 cpr0_cfgaddr; /* holds the last set cpr0_cfgaddr */ |
@@ -408,11 +411,13 @@ struct kvm_vcpu_arch { | |||
408 | struct dtl *dtl; | 411 | struct dtl *dtl; |
409 | struct dtl *dtl_end; | 412 | struct dtl *dtl_end; |
410 | 413 | ||
414 | wait_queue_head_t *wqp; | ||
411 | struct kvmppc_vcore *vcore; | 415 | struct kvmppc_vcore *vcore; |
412 | int ret; | 416 | int ret; |
413 | int trap; | 417 | int trap; |
414 | int state; | 418 | int state; |
415 | int ptid; | 419 | int ptid; |
420 | bool timer_running; | ||
416 | wait_queue_head_t cpu_run; | 421 | wait_queue_head_t cpu_run; |
417 | 422 | ||
418 | struct kvm_vcpu_arch_shared *shared; | 423 | struct kvm_vcpu_arch_shared *shared; |
@@ -428,8 +433,9 @@ struct kvm_vcpu_arch { | |||
428 | #endif | 433 | #endif |
429 | }; | 434 | }; |
430 | 435 | ||
431 | #define KVMPPC_VCPU_BUSY_IN_HOST 0 | 436 | /* Values for vcpu->arch.state */ |
432 | #define KVMPPC_VCPU_BLOCKED 1 | 437 | #define KVMPPC_VCPU_STOPPED 0 |
438 | #define KVMPPC_VCPU_BUSY_IN_HOST 1 | ||
433 | #define KVMPPC_VCPU_RUNNABLE 2 | 439 | #define KVMPPC_VCPU_RUNNABLE 2 |
434 | 440 | ||
435 | #endif /* __POWERPC_KVM_HOST_H__ */ | 441 | #endif /* __POWERPC_KVM_HOST_H__ */ |