|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/2] x86/xstate: Use the CPUID policy in valid_xcr0(), rather than allowing all features
>>> On 18.07.18 at 18:05, <andrew.cooper3@xxxxxxxxxx> wrote:
> On 18/07/18 15:48, Jan Beulich wrote:
>>>>> On 18.07.18 at 14:30, <andrew.cooper3@xxxxxxxxxx> wrote:
>>> Backporting notes: This is safe in the restore case, but only back as far as
>>> the introduction of cpuid_policy infrastructure. Before then, a restore
>>> boolean needs to be pumbed down as well, and used to select between the
>>> hardware maximum value and calls to {hvm,pv}_cpuid() to find the
>>> toolstack-chosen level.
>> So can I take this to mean that for ...
>>
>>> --- a/xen/arch/x86/domctl.c
>>> +++ b/xen/arch/x86/domctl.c
>>> @@ -1170,7 +1170,7 @@ long arch_do_domctl(
>>> if ( _xcr0_accum )
>>> {
>>> if ( evc->size >= PV_XSAVE_HDR_SIZE + XSTATE_AREA_MIN_SIZE
>>> )
>>> - ret = validate_xstate(_xcr0, _xcr0_accum,
>>> + ret = validate_xstate(d, _xcr0, _xcr0_accum,
>> ... this and ...
>>
>>> --- a/xen/arch/x86/hvm/hvm.c
>>> +++ b/xen/arch/x86/hvm/hvm.c
>>> @@ -1254,7 +1254,7 @@ static int hvm_load_cpu_xsave_states(struct domain
>>> *d,
> hvm_domain_context_t *h)
>>> ctxt = (struct hvm_hw_cpu_xsave *)&h->data[h->cur];
>>> h->cur += desc->length;
>>>
>>> - err = validate_xstate(ctxt->xcr0, ctxt->xcr0_accum,
>>> + err = validate_xstate(d, ctxt->xcr0, ctxt->xcr0_accum,
>> ... this there's no ordering issue on master (i.e. policy arrives before
>> register state)?
>
> You are correct. In the case that the policy hasn't arrived on migrate,
> d->arch.cpuid is the applicable max policy.
Hmm, you say max policy, but the plan is to have max >= default.
Isn't it the default policy that's active before the respective migration
data arrives? In which case - won't this go wrong for domains with
a policy allowing more than default? Or are you/we assuming that
for the particular features here there's not going to be any way to
expose more than the default (IOW default == max for all of
XSTATE) for the foreseeable future (in which case this assumption
should be spelled out in the description I think)?
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |