|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 10/12] docs/migration: Specify X86_{CPUID, MSR}_POLICY records
On 03.01.2020 15:55, Andrew Cooper wrote:
> On 03/01/2020 14:49, Jan Beulich wrote:
>> On 24.12.2019 16:19, Andrew Cooper wrote:
>>> @@ -439,6 +449,34 @@ def verify_record_static_data_end(self, content):
>>> raise RecordError("Static data end record found in v2 stream")
>>>
>>>
>>> + def verify_record_x86_cpuid_policy(self, content):
>>> + """ x86 CPUID policy record """
>>> +
>>> + if self.version < 3:
>>> + raise RecordError("x86 CPUID policy record found in v2 stream")
>>> +
>>> + sz = calcsize(X86_CPUID_POLICY_FORMAT)
>>> + contentsz = len(content)
>>> +
>>> + if contentsz < sz or (contentsz % sz) != 0:
>>> + raise RecordError("Record length %u, expected multiple of %u" %
>>> + (contentsz, sz))
>>> +
>>> +
>>> + def verify_record_x86_msr_policy(self, content):
>>> + """ x86 MSR policy record """
>>> +
>>> + if self.version < 3:
>>> + raise RecordError("x86 MSR policy record found in v2 stream")
>>> +
>>> + sz = calcsize(X86_MSR_POLICY_FORMAT)
>>> + contentsz = len(content)
>>> +
>>> + if contentsz < sz or (contentsz % sz) != 0:
>>> + raise RecordError("Record length %u, expected multiple of %u" %
>>> + (contentsz, sz))
>> While I can't even see a theoretical case of the CPUID array
>> having zero elements, is it really entirely implausible to have
>> an empty MSRs array? I.e. wouldn't the left side of the "or"
>> better go away?
>
> MSRs will never have 0 entries, because unlike CPUID, we can't omit
> records with 0s as their content. This becomes ambiguous when the
> policy default is nonzero.
Isn't the same true for CPUID, in particular some of the non-boolean
fields?
> When we do gain more MSRs, I will see about organising elision based on
> CPUID features, so we don't have to send a 0 for every single MSR in the
> policy, but MSRs without CPUID enumeration must always be sent.
>
> This means that the one MSR we have currently (MSR_INTEL_PLATFORM_INFO
> for CPUID Faulting, which we also virtualise on AMD hardware) shall
> unconditionally be present forever more.
Hmm, yes. Still the special casing of there needing to be at least
one entry looks a little odd here (and also for CPUID). I would
find it more logical if there was just the remainder-must-be-zero
check. But this is libxc code, so I'm not the one to really judge
anyway.
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 |