[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH RFC 01/31] xen/public: Export featureset information in the public API



>>> On 23.12.15 at 12:26, <andrew.cooper3@xxxxxxxxxx> wrote:
> On 23/12/2015 10:24, Jan Beulich wrote:
>>>>> Andrew Cooper <andrew.cooper3@xxxxxxxxxx> 12/23/15 11:05 AM >>>
>>> On 22/12/2015 16:59, Jan Beulich wrote:
>>>>>>> On 22.12.15 at 17:42, <andrew.cooper3@xxxxxxxxxx> wrote:
>>>>> On 22/12/15 16:28, Jan Beulich wrote:
>>>>>>>>> On 16.12.15 at 22:24, <andrew.cooper3@xxxxxxxxxx> wrote:
>>>>>>> +#define XEN_FEATURESET_1d     0 /* 0x00000001.edx      */
>>>>>>> +#define XEN_FEATURESET_1c     1 /* 0x00000001.ecx      */
>>>>>>> +#define XEN_FEATURESET_e1d    2 /* 0x80000001.edx      */
>>>>>>> +#define XEN_FEATURESET_e1c    3 /* 0x80000001.ecx      */
>>>>>>> +#define XEN_FEATURESET_Da1    4 /* 0x0000000d:1.eax    */
>>>>>>> +#define XEN_FEATURESET_7b0    5 /* 0x00000007:0.ebx    */
>>>>>> This ends up being pretty cryptic.
>>>>> Perhaps at a first glance, but there are so many uses that a shorthand
>>>>> really is needed.  See especially the MSR masking patches towards the
>>>>> end of the series.
>>>> I understand that something short is needed. But as the main
>>>> identifier in the ABI?
>>> It really comes down to whom is intended to do what with a featureset.
>>>
>>> These values are derivable as functions of the feature values
>>> themselves, but that requires an assumption that the featureset bitmap
>>> mirrors hardware precisely.  Providing this (names not withstanding) as
>>> a part of the ABI is intended to provide that assurance.
>>>
>>> I fully intend higher levels of the toolstack to deal with a featureset
>>> as an arbitrary bitmap, but lower levels like libxc do need a greater
>>> level of understanding of its layout.
>> All understood. The question just is whether the main identifiers in the 
>> public
>> header should be this cryptic, or whether consumers should instead introduce
>> shortcuts of their liking (even more so that, just like noted elsewhere, 
>> these
>> identifiers also lack "CPU" and perhaps "x86" in their names - in the end
>> feature leveling isn't something that's needed on x86 only).
> 
> For now, I can move them along with XEN_NR_FEATURESET_ENTRIES, because
> the only bits of libxc which need them are the bits which are already
> using the shared library.
> 
> 
> The slight conceptual issue I am concerned about is how this will fit in
> with extended work to fix the rest of cpuid handling in Xen.
> 
> Other quantities, such as max_leaf and max_phys_addr need levelling
> across hosts.  At the moment, all of this information is derived from
> dom0's view and is not kept consistent across migrate.  (Surprisingly,
> windows notices this, doesn't crash, and decides to install a new CPU
> driver.)
> 
> Long term, the toolstack needs to level a complete idea of the cpuid
> policy for the guest, and the featureset is just one part of this. 
> However, I am expecting that the featureset on its own will still be a
> useful entity, which is why I progressed down this route.

I have to admit that I don't see how all this relates to the naming issue:
I don't mind the constants being publicly advertised (and in fact I agree
they need to be), just that their names should imo be readable /
understandable without deciphering.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.