|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC 13/31] tools/libxc: Wire a featureset through to cpuid policy logic
On 05/01/16 15:42, Ian Campbell wrote:
> On Wed, 2015-12-16 at 21:24 +0000, Andrew Cooper wrote:
>> Later changes will cause the cpuid generation logic to seed their
>> information
>> from a featureset. This patch adds the infrastructure to specify a
>> featureset, and will obtain the appropriate default from Xen if omitted.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
>> ---
>> CC: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
>> CC: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
>> CC: Wei Liu <wei.liu2@xxxxxxxxxx>
>> ---
>> tools/libxc/include/xenctrl.h | 3 ++
>> tools/libxc/xc_cpuid_x86.c | 90
>> ++++++++++++++++++++++++++++++++++++++-----
>> 2 files changed, 84 insertions(+), 9 deletions(-)
>>
>> diff --git a/tools/libxc/include/xenctrl.h
>> b/tools/libxc/include/xenctrl.h
>> index 27e1f45..b44aec7 100644
>> --- a/tools/libxc/include/xenctrl.h
>> +++ b/tools/libxc/include/xenctrl.h
>> @@ -2211,6 +2211,9 @@ int xc_cpuid_set(xc_interface *xch,
>> char **config_transformed);
>> int xc_cpuid_apply_policy(xc_interface *xch,
>> domid_t domid);
>> +int xc_cpuid_apply_policy_with_featureset(xc_interface *xch, domid_t domid,
>> + uint32_t *featureset,
>> + unsigned int nr_features);
> We should aim to eventually only have one apply policy interface here not
> two, unless there is some good reason why xc_cpuid_apply_policy() should
> remain?
>
> AIUI passing featureset==NULL is going to be semantically identical to the
> old interface, so I think we should just go with adding the new parameters
> to the existing function.
Will do.
>
>> @@ -103,6 +109,32 @@ static int get_cpuid_domain_info(xc_interface *xch,
>> domid_t domid,
>> info->hvm = di.hvm;
>> info->pvh = di.pvh;
>>
>> + /* Get featureset information. */
>> + rc = xc_get_featureset(xch, XEN_SYSCTL_featureset_host,
>> + &host_nr_features, NULL);
>> + if ( rc )
>> + return rc;
>> +
>> + if ( host_nr_features < XEN_FEATURESET_7c0 )
>> + return -EINVAL;
> Could we assert this? I mean if Xen and libxc don't agree on this then
> something went pretty wrong during the dev window.
Will do.
>
>> +
>> + info->featureset = calloc(host_nr_features, sizeof(*info->featureset));
>> + if ( !info->featureset )
>> + return -ENOMEM;
>> +
>> + info->nr_features = host_nr_features;
>> +
>> + if ( featureset )
>> + {
>> + memcpy(info->featureset, featureset,
>> + min(host_nr_features, nr_features) *
>> sizeof(*info->featureset));
>> +
>> + /* Check for trucated set bits. */
> "truncated"
Will fix.
~Andrew
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |