[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 5/6] x86/msr: update domain policy on CPUID policy changes
On 13/10/17 13:35, Sergey Dyasli wrote: > Availability of some MSRs depends on certain CPUID bits. Add function > recalculate_domain_msr_policy() which updates availability of per-domain > MSRs based on current domain's CPUID policy. This function is called > when CPUID policy is changed from a toolstack. This is probably acceptable for now. recalculate_cpuid_policy() is only a transitory artefact between the current behaviour of the Xen, and the future behaviour of auditing the toolstack-provided cpuid and msr policy completely before changing the domains datastructures. > diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c > index 205b4cb685..7e6b15f8d7 100644 > --- a/xen/arch/x86/hvm/hvm.c > +++ b/xen/arch/x86/hvm/hvm.c > @@ -928,9 +928,8 @@ const char *hvm_efer_valid(const struct vcpu *v, uint64_t > value, > X86_CR0_CD | X86_CR0_PG))) > > /* These bits in CR4 can be set by the guest. */ > -unsigned long hvm_cr4_guest_valid_bits(const struct vcpu *v, bool restore) > +unsigned long hvm_cr4_domain_valid_bits(const struct domain *d, bool restore) > { > - const struct domain *d = v->domain; > const struct cpuid_policy *p; > bool mce, vmxe; > > @@ -963,6 +962,11 @@ unsigned long hvm_cr4_guest_valid_bits(const struct vcpu > *v, bool restore) > (p->feat.pku ? X86_CR4_PKE : 0)); > } > > +unsigned long hvm_cr4_guest_valid_bits(const struct vcpu *v, bool restore) I'd split this change out into a separate patch and change the existing guest valid bits to taking a domain *. It needed to take vcpu in the past because of the old cpuid infrastructure, but it doesn't need to any more because of the domain-wide struct cpuid policy. ~Andrew > +{ > + return hvm_cr4_domain_valid_bits(v->domain, restore); > +} > + > static int hvm_load_cpu_ctxt(struct domain *d, hvm_domain_context_t *h) > { > int vcpuid; > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |