[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