[PATCH v8 05/28] virt: gunyah: Add hypercalls to identify Gunyah
Elliot Berman
quic_eberman at quicinc.com
Tue Jan 17 14:29:31 PST 2023
On 1/17/2023 11:20 AM, Alex Elder wrote:
> On 1/10/23 11:56 AM, Elliot Berman wrote:
>>>> There are two calls to help identify Gunyah:
>>>>
>>>> 1. gh_hypercall_get_uid() returns a UID when running under a Gunyah
>>>> hypervisor.
>>>> 2. gh_hypercall_hyp_identify() returns build information and a set of
>>>> feature flags that are supported by Gunyah.
>>>
>>> The first is a "service", while the second is a "hypercall".
>>> Can you explain the distinction? The sentence at the top
>>> refers to both as "hypercalls".
>>>
>>
>> I learned more details about this to answer your question. "get_uid()"
>> is a standardized call that is ARM_SMCCC_VENDOR_HYP_CALL_UID_FUNC_ID
>> defined in include/arm-smccc.h. I'll use that.
>
> You didn't really explain the distinction between hypercall
> and service in Gunyah. Both are encoded as "vendor specific
> hypervisor service calls" according to the SVCCC specification.
> I haven't found where ARM_SMCCC_VENDOR_HYP_CALL_UID_FUNC_ID
> gets handled, but I accept your answer that it's basically
> a standard call. The "get UID" is the only one that's defined
> as a Gunyah "service"; the rest are hypercalls.
>
This came from a Gunyah implementation detail that separates standard
(service) calls from the non-standard calls. I was following the
distinction from Gunyah code not realizing that it's actually a
standardized call that Linux would already have support for.
Thanks,
Elliot
> It's not a big deal, I just noticed the difference and was
> curious about it.
>
> -Alex
More information about the linux-arm-kernel
mailing list