|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 04/34] HYPERCALL_version_op. New hypercall mirroring XENVER_ but sane.
On 22/03/16 18:57, Konrad Rzeszutek Wilk wrote:
>>>>> --- a/xen/include/xsm/dummy.h
>>>>> +++ b/xen/include/xsm/dummy.h
>>>>> @@ -751,3 +751,22 @@ static XSM_INLINE int xsm_xen_version
>>>>> (XSM_DEFAULT_ARG uint32_t op)
>>>>> return xsm_default_action(XSM_PRIV, current->domain, NULL);
>>>>> }
>>>>> }
>>>>> +
>>>>> +static XSM_INLINE int xsm_version_op (XSM_DEFAULT_ARG uint32_t op)
>>>>> +{
>>>>> + XSM_ASSERT_ACTION(XSM_OTHER);
>>>>> + switch ( op )
>>>>> + {
>>>>> + case XEN_VERSION_version:
>>>>> + case XEN_VERSION_extraversion:
>>>>> + case XEN_VERSION_capabilities:
>>>>> + case XEN_VERSION_platform_parameters:
>>>>> + case XEN_VERSION_get_features:
>>>>> + case XEN_VERSION_pagesize:
>>>>> + case XEN_VERSION_guest_handle:
>>>>> + /* These MUST always be accessible to any guest by default. */
>>>>> + return xsm_default_action(XSM_HOOK, current->domain, NULL);
>>>>> + default:
>>>>> + return xsm_default_action(XSM_PRIV, current->domain, NULL);
>>>> Considering that we seem to have settled on some exceptions here
>>>> for the change adding XSM check to the legacy version op, do you
>>>> really think going with no exception at all here is the right approach?
>>>> Because if we do, that'll prevent guests getting fully converted over
>>>> to the new interface. Of course, we could also make this conversion
>>>> specifically a non-goal, and omit e.g. XEN_VERSION_VERSION from
>>>> this new interface.
>>> No no. I think convesion is the right long-term goal.
>>>
>>> However the nice thing about this hypercall is that it can return -EPERM.
>>>
>>> Making it always return an value for XEN_VERSION_version,
>>> XEN_VERSION_platform_parameters, XEN_VERSION_get_features means that
>>> there are some exceptions to this "can return -EPERM" as they will
>>> be guaranteed an postive return value. They can ignore the -EPERM
>>> case.
>>>
>>> And means that guest can still take shortcuts.
>>>
>>> I agree with you that guests need these hypercalls but at the same
>>> time I am not sure what can be done so they don't fall flat on their
>>> faces if they are presented with -EPERM. The Linux xenbus_init can be
>>> modified to deal with this returning -EPERM where it makes some assumptions.
>>>
>>> But in a likelyhood it is the bad assumption!
>> I'm afraid I can't conclude what you mean to say with all of the
>> above.
> That I am waffling.
>
> Andrew, what is your opinion?
Nothing good can come from failing a XEN_VERSION_version hypercall.
There are a number easy ways for a guest to infer such information.
XEN_VERSION_platform_parameters is only useful for 32bit PV guests, and
the toolstack. Given that it is returning a fixed number in the ABI,
nothing good can come of failing this either.
get_features can effectively be failed for permission reasons by
returning 0. As such, explicitly failing with -EPERM is similarly
pointless.
~Andrew
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |