[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v1 1/2] docs: fusa: Define the requirements for XEN_VERSION hypercall.


  • To: Ayan Kumar Halder <ayankuma@xxxxxxx>
  • From: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
  • Date: Mon, 24 Feb 2025 10:03:01 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
  • Arc-message-signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2zR+hv84Esg2tu2Q7BI4KI1gLi2D7imcP3V1fDeWY3g=; b=L5dzmsOMg1en/R9yTx4CobjNnu62XLms8VgUEveBb0cKbQ+sjAiYchAbZBEuYGcbAgyKu4s+orgSy9DtxKwNKPRXX1F1sIidF4CYJAEi/vgMBV6fkLhvYnJXzm5rLYvO9c3YeyK4AuBR0gRU7nXUNuew04nPN9Z9BfUe9Mhtic0mThR2oHPCDmqRpIKKX03hOJuQiEnjvwkBGaAVjq11WmQ63dWPA0zWl2z8zqrVyX08VAyEnES1fPzl5Aje8wJYabFF9eO/pmqGcbjFL1dHPImIBhmh7CDliwigAomyVkuX0ilhA1oaIQZubbC3M8Vwy6L+5YIBK6c6cfr026tzHA==
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2zR+hv84Esg2tu2Q7BI4KI1gLi2D7imcP3V1fDeWY3g=; b=T/4uQ6Ni6SxOFdM98ihMIUjAFnZCX2HDuH7kyRkklOkeW4ofWiewH9R6E/6gUX9SxcnZfadj0PHh9WyXqK2GWDiDxlPC/2fE1Wswsp1GG0eMdFx+kKpOQuBBVtzPSAry32feLcWYbb87g5E2K92u+QQ7z/4EKiBYnpdVxt+b3rwioodxct8wzORZdPuXv+N80OvOh/CfQhrycSG6V3g+7IG1n2/w4zm5YFhM3k/gEHFLz7sBl5QKH52/8AplIoBHGNQb3xl6TcaTtWJfJqaDr2FXAntN30vNCyE6aju6Rh7A1qVwVX3u+aUD43QNywlIYAyzX/yiyG2URTonTqRF3A==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=oZiYKrpELKPro5IysJC5Fh/kB+9z9SUeRUVoZsTQmpdd0JtS3bpKlFjL2SoNRL0dtJaMeoIxHFAxVQ1booFkkZOMBKy/YXwqSzm37JBegLG/px6n+yXUp33HokSyuCdahLwHrP5qy0PE1us62ZCF+6ZxVRcgxJKqbf/qT0G0KDQxSBgVZc2fGmHqKLGYjTteI0mPVCBKAFWRCDXqzuoIciEg7GaXTNmVDsGB39/F2pF1HMWUMmv9MPsjbHnzH4ULeWSFDK5EdFjI3AMhufkg0Qq4tgIYFZlU5j4rbBG4z2dlpK3JjpJeVkEEGhwD646de/fcI3eXo3AOSHcddF5Iyg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gq+vSpzxaylB15KBFq+pNVl9FqXyBLrq5yA5IcrffJiH26di7kiu5MO/smTc3qDMC2HTuXZ0w2+HAc0PfUK8GemaPXmRmLm/Euk2rn4uwxB6ygEKhCLK6aHvERBTTXFpcAhaFu87ItPMDsWpUutR0flM3XSKJKX0TMDLIEXzA63hcvRof88SzPwxInFrwlegj2eGcxWzHG/pvjZmbxpPDLyJzpa3wUnTtXceoGl6+R3AfWzpJYZ/8Njw3ufEpPsCmxsdFvAgjn0QMngTzgzJJ7nTEXZ9KB4ft5SknIE/bfFKAd1HTecyAl/NZOUOQ00Xz453GTlS1npAI175GitbVg==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: Ayan Kumar Halder <ayan.kumar.halder@xxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Artem Mygaiev <artem_mygaiev@xxxxxxxx>
  • Delivery-date: Mon, 24 Feb 2025 10:03:21 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Original-authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Thread-index: AQHbZr2N0lH4GhPB/kOpvRdBJn3PXLMtgcUAgB5iFwCACpUwgA==
  • Thread-topic: [PATCH v1 1/2] docs: fusa: Define the requirements for XEN_VERSION hypercall.

Hi Ayan,

> On 17 Feb 2025, at 17:26, Ayan Kumar Halder <ayankuma@xxxxxxx> wrote:
> 
> 
> On 29/01/2025 08:27, Bertrand Marquis wrote:
>> Hi Ayan,
> 
> Hi Bertrand,
> 
> I need some clarifications.
> 
>> 
>>> On 14 Jan 2025, at 20:50, Ayan Kumar Halder <ayan.kumar.halder@xxxxxxx> 
>>> wrote:
>>> 
>>> In the current patch, we have defined the requirements which are common for
>>> all the commands.
>>> 
>>> Signed-off-by: Ayan Kumar Halder <ayan.kumar.halder@xxxxxxx>
>>> ---
>>> .../fusa/reqs/design-reqs/arm64/hypercall.rst | 52 ++++++++++++++++
>>> docs/fusa/reqs/index.rst                      |  2 +
>>> docs/fusa/reqs/market-reqs/reqs.rst           | 16 +++++
>>> .../reqs/product-reqs/version_hypercall.rst   | 61 +++++++++++++++++++
>>> 4 files changed, 131 insertions(+)
>>> create mode 100644 docs/fusa/reqs/design-reqs/arm64/hypercall.rst
>>> create mode 100644 docs/fusa/reqs/product-reqs/version_hypercall.rst
>>> 
>>> diff --git a/docs/fusa/reqs/design-reqs/arm64/hypercall.rst 
>>> b/docs/fusa/reqs/design-reqs/arm64/hypercall.rst
>>> new file mode 100644
>>> index 0000000000..66dbcc3026
>>> --- /dev/null
>>> +++ b/docs/fusa/reqs/design-reqs/arm64/hypercall.rst
>>> @@ -0,0 +1,52 @@
>>> +.. SPDX-License-Identifier: CC-BY-4.0
>>> +
>>> +Hypercall
>>> +=========
>>> +
>>> +Instruction
>>> +-----------
>>> +
>>> +`XenSwdgn~arm64_hyp_instr~1`
>>> +
>>> +Description:
>>> +Domains shall use the Arm instruction 'hvc' to interact with Xen.
>> Why are those requirements defining what "Domains" should do ?
>> Shouldn't we define them as what Xen shall do ?
>> Something around:
>> Xen shall treat Domain hypercall exceptions and hypercall requests from 
>> Domains.
>> 
>> Or something around this idea.
> Xen shall treat domain hypercall exception as hypercall requests.

sounds good

>> 
>>> +
>>> +Rationale:
>>> +
>>> +Comments:
> Hypercall is one of the communication mechanism between Xen and domains.
> Domains use hypercalls for various requests to Xen.
> Domains use 'hvc' instruction to invoke hypercalls.

ok

>>> +
>>> +Covers:
>>> + - `XenProd~version_hyp_first_param~1`
>>> + - `XenProd~version_hyp_second_param~1`
>>> +
>>> +Parameters
>>> +----------
>>> +
>>> +`XenSwdgn~arm64_hyp_param~1`
>>> +
>>> +Description:
>>> +Domains shall use register x0 to pass first parameter, x1 to pass second
>>> +parameter and so on.
>> Same
> Xen shall use the register 0 to read the first parameter, register 1
> for second parameter and so on, for domain hypercall requests.

ok

>> 
>>> +
>>> +Rationale:
>>> +
>>> +Comments:
>>> +
>>> +Covers:
>>> + - `XenProd~version_hyp_first_param~1`
>>> + - `XenProd~version_hyp_second_param~1`
>>> +
>>> +Return value
>>> +------------
>>> +
>>> +`XenSwdgn~arm64_ret_val~1`
>>> +
>>> +Description:
>>> +Xen shall store the return value in x0 register.
>>> +
>>> +Rationale:
>>> +
>>> +Comments:
>>> +
>>> +Covers:
>>> + - `XenProd~version_hyp_ret_val~1`
>>> diff --git a/docs/fusa/reqs/index.rst b/docs/fusa/reqs/index.rst
>>> index 1088a51d52..d8683edce7 100644
>>> --- a/docs/fusa/reqs/index.rst
>>> +++ b/docs/fusa/reqs/index.rst
>>> @@ -10,5 +10,7 @@ Requirements documentation
>>>    market-reqs/reqs
>>>    product-reqs/reqs
>>>    product-reqs/arm64/reqs
>>> +   product-reqs/version_hypercall
>>>    design-reqs/arm64/generic-timer
>>>    design-reqs/arm64/sbsa-uart
>>> +   design-reqs/arm64/hypercall
>>> diff --git a/docs/fusa/reqs/market-reqs/reqs.rst 
>>> b/docs/fusa/reqs/market-reqs/reqs.rst
>>> index 2d297ecc13..0e29fe5362 100644
>>> --- a/docs/fusa/reqs/market-reqs/reqs.rst
>>> +++ b/docs/fusa/reqs/market-reqs/reqs.rst
>>> @@ -79,3 +79,19 @@ Comments:
>>> 
>>> Needs:
>>>  - XenProd
>>> +
>>> +Version hypercall
>>> +-----------------
>>> +
>>> +`XenMkt~version_hypercall~1`
>>> +
>>> +Description:
>>> +Xen shall provide an interface for the domains to retrieve Xen's version, 
>>> type
>>> +and compilation information.
>>> +
>>> +Rationale:
>>> +
>>> +Comments:
>>> +
>>> +Needs:
>>> + - XenProd
>>> diff --git a/docs/fusa/reqs/product-reqs/version_hypercall.rst 
>>> b/docs/fusa/reqs/product-reqs/version_hypercall.rst
>>> new file mode 100644
>>> index 0000000000..fdb8da04e1
>>> --- /dev/null
>>> +++ b/docs/fusa/reqs/product-reqs/version_hypercall.rst
>>> @@ -0,0 +1,61 @@
>>> +.. SPDX-License-Identifier: CC-BY-4.0
>>> +
>>> +Version hypercall
>>> +=================
>>> +
>>> +First Parameter
>>> +---------------
>>> +
>>> +`XenProd~version_hyp_first_param~1`
>>> +
>>> +Description:
>>> +Domain shall pass the first argument (as an integer) to denote the command
>>> +number for the hypercall.
>> Same here should be turned as Xen shall.
> Xen shall treat the first argument (as an integer) to denote the command 
> number
> for the hypercall.

ok

>> 
>>> +
>>> +Rationale:
>>> +
>>> +Comments:
>>> +
>>> +Covers:
>>> + - `XenMkt~version_hypercall~1`
>>> +
>>> +Needs:
>>> + - XenSwdgn
>>> +
>>> +Second Parameter
>>> +----------------
>>> +
>>> +`XenProd~version_hyp_second_param~1`
>>> +
>>> +Description:
>>> +Domain shall pass the second argument as a pointer to buffer in guest 
>>> memory.
>>> +
>> Ditto
> Xen shall treat the second argument as a pointer to buffer in guest memory.

You might want to specify the addressing type (PA/IPA/VA) here.


Bertrand

> - Ayan
>> 
>>> +Rationale:
>>> +
>>> +Comments:
>>> +
>>> +Covers:
>>> + - `XenMkt~version_hypercall~1`
>>> +
>>> +Needs:
>>> + - XenSwdgn
>>> +
>>> +Return Value
>>> +------------
>>> +
>>> +`XenProd~version_hyp_ret_val~1`
>>> +
>>> +Description:
>>> +Xen shall return 0 in case of success or one of the error codes as defined 
>>> in
>>> +https://man7.org/linux/man-pages/man3/errno.3.html.
>>> +
>>> +Rationale:
>>> +
>>> +Comments:
>>> +
>>> +Covers:
>>> + - `XenMkt~version_hypercall~1`
>>> +
>>> +Needs:
>>> + - XenSwdgn
>>> +
>>> -- 
>>> 2.25.1
>>> 
>> Cheers
>> Bertrand





 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.