On 17/01/17 15:28, Jan Beulich wrote:
On 17.01.17 at 16:15, wrote:
>> On 17/01/17 12:52, Jan Beulich wrote:
>> On 17.01.17 at 12:27, wrote:
@@ -154,6 +152,13 @@ struct cpuid_policy
};
uint32_t /* b */:32, xss_low, xss_high;
};
+
>>> On 17.01.17 at 16:15, wrote:
> On 17/01/17 12:52, Jan Beulich wrote:
> On 17.01.17 at 12:27, wrote:
>>> @@ -154,6 +152,13 @@ struct cpuid_policy
>>> };
>>> uint32_t /* b */:32, xss_low, xss_high;
>>> };
>>> +
>>> +/* Per-component common state.
On 17/01/17 12:52, Jan Beulich wrote:
On 17.01.17 at 12:27, wrote:
>> --- a/xen/arch/x86/cpuid.c
>> +++ b/xen/arch/x86/cpuid.c
>> @@ -80,6 +80,103 @@ static void sanitise_featureset(uint32_t *fs)
>>(fs[FEATURESET_e1d] & ~CPUID_COMMON_1D_FEATURES));
>> }
>>
>> +s
>>> On 17.01.17 at 12:27, wrote:
> --- a/xen/arch/x86/cpuid.c
> +++ b/xen/arch/x86/cpuid.c
> @@ -80,6 +80,103 @@ static void sanitise_featureset(uint32_t *fs)
>(fs[FEATURESET_e1d] & ~CPUID_COMMON_1D_FEATURES));
> }
>
> +static void recalculate_xstate(struct cpuid_pol
All data in the xstate union, other than the Da1 feature word, is derived from
other state; either feature bits from other words, or layout information which
has already been collected by Xen's xstate driver.
Recalculate the xstate information for each policy object when the feature
bits may have