|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 08/13] libs/guest: make a cpu policy compatible with older Xen versions
On 30.04.2021 17:52, Roger Pau Monne wrote:
> @@ -1086,3 +1075,42 @@ int xc_cpu_policy_calc_compatible(xc_interface *xch,
>
> return rc;
> }
> +
> +int xc_cpu_policy_make_compatible(xc_interface *xch, xc_cpu_policy_t policy,
> + bool hvm)
I'm concerned of the naming, and in particular the two very different
meanings of "compatible" for xc_cpu_policy_calc_compatible() and this
new one. I'm afraid I don't have a good suggestion though, short of
making the name even longer and inserting "backwards".
Jan
> +{
> + xc_cpu_policy_t host;
> + int rc;
> +
> + host = xc_cpu_policy_init();
> + if ( !host )
> + {
> + errno = ENOMEM;
> + return -1;
> + }
> +
> + rc = xc_cpu_policy_get_system(xch, XEN_SYSCTL_cpu_policy_host, host);
> + if ( rc )
> + {
> + ERROR("Failed to get host policy");
> + goto out;
> + }
> +
> + /*
> + * Account for features which have been disabled by default since Xen
> 4.13,
> + * so migrated-in VM's don't risk seeing features disappearing.
> + */
> + policy->cpuid.basic.rdrand = host->cpuid.basic.rdrand;
> +
> + if ( hvm )
> + policy->cpuid.feat.mpx = host->cpuid.feat.mpx;
> +
> + /* Clamp maximum leaves to the ones supported on 4.12. */
> + policy->cpuid.basic.max_leaf = min(policy->cpuid.basic.max_leaf, 0xdu);
> + policy->cpuid.feat.max_subleaf = 0;
> + policy->cpuid.extd.max_leaf = min(policy->cpuid.extd.max_leaf, 0x1cu);
> +
> + out:
> + xc_cpu_policy_destroy(host);
> + return rc;
> +}
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |