KVM: PPC: Book3S HV: Add 'online' register to ONE_REG interface
This adds a new KVM_REG_PPC_ONLINE register which userspace can set to 0 or 1 via the GET/SET_ONE_REG interface to indicate whether it considers the VCPU to be offline (0), that is, not currently running, or online (1). This will be used in a later patch to configure the register which controls PURR and SPURR accumulation. Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
This commit is contained in:
parent
df158189db
commit
a1f158262a
@ -772,6 +772,8 @@ struct kvm_vcpu_arch {
|
|||||||
u64 busy_preempt;
|
u64 busy_preempt;
|
||||||
|
|
||||||
u32 emul_inst;
|
u32 emul_inst;
|
||||||
|
|
||||||
|
u32 online;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_KVM_BOOK3S_HV_EXIT_TIMING
|
#ifdef CONFIG_KVM_BOOK3S_HV_EXIT_TIMING
|
||||||
|
@ -633,6 +633,7 @@ struct kvm_ppc_cpu_char {
|
|||||||
#define KVM_REG_PPC_PSSCR (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xbd)
|
#define KVM_REG_PPC_PSSCR (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xbd)
|
||||||
|
|
||||||
#define KVM_REG_PPC_DEC_EXPIRY (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xbe)
|
#define KVM_REG_PPC_DEC_EXPIRY (KVM_REG_PPC | KVM_REG_SIZE_U64 | 0xbe)
|
||||||
|
#define KVM_REG_PPC_ONLINE (KVM_REG_PPC | KVM_REG_SIZE_U32 | 0xbf)
|
||||||
|
|
||||||
/* Transactional Memory checkpointed state:
|
/* Transactional Memory checkpointed state:
|
||||||
* This is all GPRs, all VSX regs and a subset of SPRs
|
* This is all GPRs, all VSX regs and a subset of SPRs
|
||||||
|
@ -1526,6 +1526,9 @@ static int kvmppc_get_one_reg_hv(struct kvm_vcpu *vcpu, u64 id,
|
|||||||
*val = get_reg_val(id, vcpu->arch.dec_expires +
|
*val = get_reg_val(id, vcpu->arch.dec_expires +
|
||||||
vcpu->arch.vcore->tb_offset);
|
vcpu->arch.vcore->tb_offset);
|
||||||
break;
|
break;
|
||||||
|
case KVM_REG_PPC_ONLINE:
|
||||||
|
*val = get_reg_val(id, vcpu->arch.online);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
r = -EINVAL;
|
r = -EINVAL;
|
||||||
break;
|
break;
|
||||||
@ -1757,6 +1760,9 @@ static int kvmppc_set_one_reg_hv(struct kvm_vcpu *vcpu, u64 id,
|
|||||||
vcpu->arch.dec_expires = set_reg_val(id, *val) -
|
vcpu->arch.dec_expires = set_reg_val(id, *val) -
|
||||||
vcpu->arch.vcore->tb_offset;
|
vcpu->arch.vcore->tb_offset;
|
||||||
break;
|
break;
|
||||||
|
case KVM_REG_PPC_ONLINE:
|
||||||
|
vcpu->arch.online = set_reg_val(id, *val);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
r = -EINVAL;
|
r = -EINVAL;
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user