diff mbox series

[for-4.18,2/2] xen/public: arch-arm: Update list of supported hypercalls

Message ID 20231006075142.9803-3-michal.orzel@amd.com (mailing list archive)
State New, archived
Headers show
Series xen: hypercalls doc update | expand

Commit Message

Michal Orzel Oct. 6, 2023, 7:51 a.m. UTC
The list is out of date and does not specify all the hypercalls/sub-ops
we support, so update it.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
 xen/include/public/arch-arm.h | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

Comments

Julien Grall Oct. 6, 2023, 10:11 a.m. UTC | #1
Hi Michal,

On 06/10/2023 08:51, Michal Orzel wrote:
> The list is out of date and does not specify all the hypercalls/sub-ops
> we support, so update it.
> 
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
> ---
>   xen/include/public/arch-arm.h | 21 +++++++++++++++++++++
>   1 file changed, 21 insertions(+)
> 
> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
> index 6a4467e8f5d1..263b1e182eb3 100644
> --- a/xen/include/public/arch-arm.h
> +++ b/xen/include/public/arch-arm.h
> @@ -104,6 +104,7 @@
>    *   Exactly these sub-operations are supported:
>    *    * HVMOP_set_param
>    *    * HVMOP_get_param
> + *    * HVMOP_guest_request_vm_event
>    *
>    *  HYPERVISOR_grant_table_op
>    *   All generic sub-operations
> @@ -116,6 +117,26 @@
>    *  HYPERVISOR_argo_op
>    *   All generic sub-operations
>    *
> + *  HYPERVISOR_hypfs_op
> + *   All generic sub-operations
> + *
> + *  HYPERVISOR_platform_op
> + *   Exactly these sub-operations are supported:
> + *    * XENPF_settime64
> + *
> + *  HYPERVISOR_vm_assist
> + *   All generic sub-operations
> + *
> + *  HYPERVISOR_dm_op
> + *   All ioreq server sub-operations are supported as well as:

I interpret this sentence as all the hypercall with 'ioreq' in their 
name is supported. But, for Arm, we at least don't support 
XEN_DMOP_map_mem_type_to_ioreq_server.

Cheers,
Michal Orzel Oct. 6, 2023, 10:20 a.m. UTC | #2
Hi Julien,

On 06/10/2023 12:11, Julien Grall wrote:
> 
> 
> Hi Michal,
> 
> On 06/10/2023 08:51, Michal Orzel wrote:
>> The list is out of date and does not specify all the hypercalls/sub-ops
>> we support, so update it.
>>
>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>> ---
>>   xen/include/public/arch-arm.h | 21 +++++++++++++++++++++
>>   1 file changed, 21 insertions(+)
>>
>> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
>> index 6a4467e8f5d1..263b1e182eb3 100644
>> --- a/xen/include/public/arch-arm.h
>> +++ b/xen/include/public/arch-arm.h
>> @@ -104,6 +104,7 @@
>>    *   Exactly these sub-operations are supported:
>>    *    * HVMOP_set_param
>>    *    * HVMOP_get_param
>> + *    * HVMOP_guest_request_vm_event
>>    *
>>    *  HYPERVISOR_grant_table_op
>>    *   All generic sub-operations
>> @@ -116,6 +117,26 @@
>>    *  HYPERVISOR_argo_op
>>    *   All generic sub-operations
>>    *
>> + *  HYPERVISOR_hypfs_op
>> + *   All generic sub-operations
>> + *
>> + *  HYPERVISOR_platform_op
>> + *   Exactly these sub-operations are supported:
>> + *    * XENPF_settime64
>> + *
>> + *  HYPERVISOR_vm_assist
>> + *   All generic sub-operations
>> + *
>> + *  HYPERVISOR_dm_op
>> + *   All ioreq server sub-operations are supported as well as:
> 
> I interpret this sentence as all the hypercall with 'ioreq' in their
> name is supported. But, for Arm, we at least don't support
> XEN_DMOP_map_mem_type_to_ioreq_server.
What I meant is that we support all sub-ops from ioreq_server_dm_op (ioreq.c).
XEN_DMOP_map_mem_type_to_ioreq_server is only accessible on x86 and not part of ioreq.c

~Michal
Julien Grall Oct. 6, 2023, 12:31 p.m. UTC | #3
On 06/10/2023 11:20, Michal Orzel wrote:
> On 06/10/2023 12:11, Julien Grall wrote:
>>
>>
>> Hi Michal,
>>
>> On 06/10/2023 08:51, Michal Orzel wrote:
>>> The list is out of date and does not specify all the hypercalls/sub-ops
>>> we support, so update it.
>>>
>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>> ---
>>>    xen/include/public/arch-arm.h | 21 +++++++++++++++++++++
>>>    1 file changed, 21 insertions(+)
>>>
>>> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
>>> index 6a4467e8f5d1..263b1e182eb3 100644
>>> --- a/xen/include/public/arch-arm.h
>>> +++ b/xen/include/public/arch-arm.h
>>> @@ -104,6 +104,7 @@
>>>     *   Exactly these sub-operations are supported:
>>>     *    * HVMOP_set_param
>>>     *    * HVMOP_get_param
>>> + *    * HVMOP_guest_request_vm_event
>>>     *
>>>     *  HYPERVISOR_grant_table_op
>>>     *   All generic sub-operations
>>> @@ -116,6 +117,26 @@
>>>     *  HYPERVISOR_argo_op
>>>     *   All generic sub-operations
>>>     *
>>> + *  HYPERVISOR_hypfs_op
>>> + *   All generic sub-operations
>>> + *
>>> + *  HYPERVISOR_platform_op
>>> + *   Exactly these sub-operations are supported:
>>> + *    * XENPF_settime64
>>> + *
>>> + *  HYPERVISOR_vm_assist
>>> + *   All generic sub-operations
>>> + *
>>> + *  HYPERVISOR_dm_op
>>> + *   All ioreq server sub-operations are supported as well as:
>>
>> I interpret this sentence as all the hypercall with 'ioreq' in their
>> name is supported. But, for Arm, we at least don't support
>> XEN_DMOP_map_mem_type_to_ioreq_server.
> What I meant is that we support all sub-ops from ioreq_server_dm_op (ioreq.c).
> XEN_DMOP_map_mem_type_to_ioreq_server is only accessible on x86 and not part of ioreq.c


The header is a public interface and meant to be read by OS developper 
which may not be familiar with the source code. How about listing the 
subops we support?

This will avoid the developper to go through the source code to find out 
if a sub-op is implemented in ioreq.c or not.

Cheers,
Michal Orzel Oct. 6, 2023, 12:38 p.m. UTC | #4
Hello,

On 06/10/2023 14:31, Julien Grall wrote:
> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
> 
> 
> On 06/10/2023 11:20, Michal Orzel wrote:
>> On 06/10/2023 12:11, Julien Grall wrote:
>>>
>>>
>>> Hi Michal,
>>>
>>> On 06/10/2023 08:51, Michal Orzel wrote:
>>>> The list is out of date and does not specify all the hypercalls/sub-ops
>>>> we support, so update it.
>>>>
>>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>>> ---
>>>>    xen/include/public/arch-arm.h | 21 +++++++++++++++++++++
>>>>    1 file changed, 21 insertions(+)
>>>>
>>>> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
>>>> index 6a4467e8f5d1..263b1e182eb3 100644
>>>> --- a/xen/include/public/arch-arm.h
>>>> +++ b/xen/include/public/arch-arm.h
>>>> @@ -104,6 +104,7 @@
>>>>     *   Exactly these sub-operations are supported:
>>>>     *    * HVMOP_set_param
>>>>     *    * HVMOP_get_param
>>>> + *    * HVMOP_guest_request_vm_event
>>>>     *
>>>>     *  HYPERVISOR_grant_table_op
>>>>     *   All generic sub-operations
>>>> @@ -116,6 +117,26 @@
>>>>     *  HYPERVISOR_argo_op
>>>>     *   All generic sub-operations
>>>>     *
>>>> + *  HYPERVISOR_hypfs_op
>>>> + *   All generic sub-operations
>>>> + *
>>>> + *  HYPERVISOR_platform_op
>>>> + *   Exactly these sub-operations are supported:
>>>> + *    * XENPF_settime64
>>>> + *
>>>> + *  HYPERVISOR_vm_assist
>>>> + *   All generic sub-operations
>>>> + *
>>>> + *  HYPERVISOR_dm_op
>>>> + *   All ioreq server sub-operations are supported as well as:
>>>
>>> I interpret this sentence as all the hypercall with 'ioreq' in their
>>> name is supported. But, for Arm, we at least don't support
>>> XEN_DMOP_map_mem_type_to_ioreq_server.
>> What I meant is that we support all sub-ops from ioreq_server_dm_op (ioreq.c).
>> XEN_DMOP_map_mem_type_to_ioreq_server is only accessible on x86 and not part of ioreq.c
> 
> 
> The header is a public interface and meant to be read by OS developper
> which may not be familiar with the source code. How about listing the
> subops we support?
> 
> This will avoid the developper to go through the source code to find out
> if a sub-op is implemented in ioreq.c or not.
Sure, I fully agree so I will then send a v2 with:
 *  HYPERVISOR_dm_op
 *   Exactly these sub-operations are supported:
 *    * XEN_DMOP_create_ioreq_server
 *    * XEN_DMOP_get_ioreq_server_info
 *    * XEN_DMOP_map_io_range_to_ioreq_server
 *    * XEN_DMOP_unmap_io_range_from_ioreq_server
 *    * XEN_DMOP_set_ioreq_server_state
 *    * XEN_DMOP_destroy_ioreq_server
 *    * XEN_DMOP_set_irq_level
 *    * XEN_DMOP_nr_vcpus

I will also skip x86 patch given that Andrew wants to extend it.

~Michal
Julien Grall Oct. 6, 2023, 12:40 p.m. UTC | #5
On 06/10/2023 13:38, Michal Orzel wrote:
> Hello,
> 
> On 06/10/2023 14:31, Julien Grall wrote:
>> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
>>
>>
>> On 06/10/2023 11:20, Michal Orzel wrote:
>>> On 06/10/2023 12:11, Julien Grall wrote:
>>>>
>>>>
>>>> Hi Michal,
>>>>
>>>> On 06/10/2023 08:51, Michal Orzel wrote:
>>>>> The list is out of date and does not specify all the hypercalls/sub-ops
>>>>> we support, so update it.
>>>>>
>>>>> Signed-off-by: Michal Orzel <michal.orzel@amd.com>
>>>>> ---
>>>>>     xen/include/public/arch-arm.h | 21 +++++++++++++++++++++
>>>>>     1 file changed, 21 insertions(+)
>>>>>
>>>>> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
>>>>> index 6a4467e8f5d1..263b1e182eb3 100644
>>>>> --- a/xen/include/public/arch-arm.h
>>>>> +++ b/xen/include/public/arch-arm.h
>>>>> @@ -104,6 +104,7 @@
>>>>>      *   Exactly these sub-operations are supported:
>>>>>      *    * HVMOP_set_param
>>>>>      *    * HVMOP_get_param
>>>>> + *    * HVMOP_guest_request_vm_event
>>>>>      *
>>>>>      *  HYPERVISOR_grant_table_op
>>>>>      *   All generic sub-operations
>>>>> @@ -116,6 +117,26 @@
>>>>>      *  HYPERVISOR_argo_op
>>>>>      *   All generic sub-operations
>>>>>      *
>>>>> + *  HYPERVISOR_hypfs_op
>>>>> + *   All generic sub-operations
>>>>> + *
>>>>> + *  HYPERVISOR_platform_op
>>>>> + *   Exactly these sub-operations are supported:
>>>>> + *    * XENPF_settime64
>>>>> + *
>>>>> + *  HYPERVISOR_vm_assist
>>>>> + *   All generic sub-operations
>>>>> + *
>>>>> + *  HYPERVISOR_dm_op
>>>>> + *   All ioreq server sub-operations are supported as well as:
>>>>
>>>> I interpret this sentence as all the hypercall with 'ioreq' in their
>>>> name is supported. But, for Arm, we at least don't support
>>>> XEN_DMOP_map_mem_type_to_ioreq_server.
>>> What I meant is that we support all sub-ops from ioreq_server_dm_op (ioreq.c).
>>> XEN_DMOP_map_mem_type_to_ioreq_server is only accessible on x86 and not part of ioreq.c
>>
>>
>> The header is a public interface and meant to be read by OS developper
>> which may not be familiar with the source code. How about listing the
>> subops we support?
>>
>> This will avoid the developper to go through the source code to find out
>> if a sub-op is implemented in ioreq.c or not.
> Sure, I fully agree so I will then send a v2 with:
>   *  HYPERVISOR_dm_op
>   *   Exactly these sub-operations are supported:
>   *    * XEN_DMOP_create_ioreq_server
>   *    * XEN_DMOP_get_ioreq_server_info
>   *    * XEN_DMOP_map_io_range_to_ioreq_server
>   *    * XEN_DMOP_unmap_io_range_from_ioreq_server
>   *    * XEN_DMOP_set_ioreq_server_state
>   *    * XEN_DMOP_destroy_ioreq_server
>   *    * XEN_DMOP_set_irq_level
>   *    * XEN_DMOP_nr_vcpus

Thanks! With that you can add:

Acked-by: Julien Grall <jgrall@amazon.com>

Cheers,
diff mbox series

Patch

diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
index 6a4467e8f5d1..263b1e182eb3 100644
--- a/xen/include/public/arch-arm.h
+++ b/xen/include/public/arch-arm.h
@@ -104,6 +104,7 @@ 
  *   Exactly these sub-operations are supported:
  *    * HVMOP_set_param
  *    * HVMOP_get_param
+ *    * HVMOP_guest_request_vm_event
  *
  *  HYPERVISOR_grant_table_op
  *   All generic sub-operations
@@ -116,6 +117,26 @@ 
  *  HYPERVISOR_argo_op
  *   All generic sub-operations
  *
+ *  HYPERVISOR_hypfs_op
+ *   All generic sub-operations
+ *
+ *  HYPERVISOR_platform_op
+ *   Exactly these sub-operations are supported:
+ *    * XENPF_settime64
+ *
+ *  HYPERVISOR_vm_assist
+ *   All generic sub-operations
+ *
+ *  HYPERVISOR_dm_op
+ *   All ioreq server sub-operations are supported as well as:
+ *    * XEN_DMOP_set_irq_level
+ *    * XEN_DMOP_nr_vcpus
+ *
+ *  HYPERVISOR_xsm_op
+ *   All generic sub-operations
+ *
+ *  HYPERVISOR_multicall
+ *
  * Other notes on the ARM ABI:
  *
  * - struct start_info is not exported to ARM guests.