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

Re: [Xen-devel] [PATCH v9 1/2] x86/viridian: Re-purpose the HVM parameter to be a feature mask

On Wed, 2014-09-03 at 17:26 +0100, Ian Jackson wrote:
> Paul Durrant writes ("[PATCH v9 1/2] x86/viridian: Re-purpose the HVM 
> parameter to be a feature mask"):
> > The following commits introduced the time reference counter MSR and
> > TSC/APIC frequency MSRs into the viridian feature set respectively:
> ...
> > The viridian option in xl.cfg(5) has also been changed to a string list so
> > that the sets can be individually sepcified. For compatibility, if the
> > option is specified as a boolean, then a true (1) value will be translated
> > to a string list containing "base" and "freq".
> We had a conversation on IRC about the API.  See below.
> For libxl I think this means:
>   - Keep the existing flag
>   - Introduce two new bitmaps called something like
>      viridian_features_{enable,disable}

Of type libxl_bitmap or uintN? (if the former then some sort of #define
for the maximum feature will be needed, I think, but it would let you
use libxl_bitmap_set_any/none which might be handy.

>   - Features actually enabled are
>       !defbool_value(viridian) ? 0 :
>       ((viridian_features_enable | default) & ~viridian_features_disable)
> The feature bits would be provided via a libxl enum either specified
> with values 1,2,4 etc. or (better) with a new `shifted' property.
> For xl I would suggest:
>   Keep the existing config name and do not introduce any new variables.
>   Existing values 0 and 1 (or false and true) mean `enable, defaults'.

Presumably you mean that 0/false means disable all?

>   Alternatively user can specify comma-separated list of {feature
>   name, or `all'} each optionally preceded by `!'.  That means
>   `enable, adjust feature set accordingly'.

This suggests that it would be convenient to go the `shifted property'
route in the IDL, since that would let applications use
libxl_viridian_feature_from_string("somefeature"), whereas bodging it
with an enum containing somefeature_shifted would require you to use
libxl_viridian_feature_from_string("somefeature-shifted") (presumably by
munging in xl rather than forcing the user to say this...)


Xen-devel mailing list



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