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

Re: [PATCH] xen/arm: acpi: Include header file for version number


  • To: Julien Grall <julien@xxxxxxx>
  • From: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
  • Date: Wed, 7 Sep 2022 08:53:09 +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=armh.onmicrosoft.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=arcselector9901; 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=Aj9lsvqm8Rg65hyLIXtmGhhmT96oPyr4fyxqVrE0XSc=; b=TJOoO+8TcPV4/MreWJqq6kGoYPCvKKUJsSNohUwm1yLUKCvIkCzBYWGsioerRGfQTRl6wocx2iPF/mqa/O+88lOAZNGeab0AF+VkQro0VLhmbE0lEuYijK21E443ycXiouzNxqQ/RBxjhpQJkqel9It23woL4f6JnLISEBrZc3pP6qLdUfmyKC/GTmvzkvYrSZx4XKXRznyM8/4cbNRowJhW9UAwqo7TSqvPuSJBUjdtdebrzMQlsy1GuF0IRmmi5iaNfXIQH2F4OuPyssa3usiv/xKp1MNFED6/7CjacTH21iK/wpw5ax0iLNPBIepJblEXIe7UoWT8qLI3q4SvYw==
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=Aj9lsvqm8Rg65hyLIXtmGhhmT96oPyr4fyxqVrE0XSc=; b=FP9saBOQfUUQmJ66JmjRQuQDsofmnxdi8AwvnWHqah/RL0J5llRwBA5pJg2tlcLqiHLMzUHGg9lnYtuXFd5Yht+w5awB0GG1KU99WDfyK8f4RB7RKRt3qCqUqHVZW217kcRV9RDIbDV8iYCV32gh7+9m5nfjBUTEpve9rXEI+Ebd6Vkw9fMyHu2Kr0+osZYD4K3lkQVN6EtyoRris1vJMOZ1TB1lUzQCMLxUDeTRhsJT68vtl+p05cLu2JRt16mhZP7qU+1pfiVeXkQM+Tq0t3d9bLQ+xMKJvftMmu75aq9SvcwFEFG7AD2BuhC0/UZVfGDMoXeS4iloWhRflJaovQ==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=GQOs5kisnbLVYaUT73RTw1k5TXnPFfLzUqk4cymfqoqUfwJwKX5CCo+aEq2l3AD1x4uTuNxlXm3z/PdE1Ajj2Q9qXNdUHJipObS3rpcAOamsu+/XURiTKy7suH0I9cwW4OsirjGVGbWef1RlLwbZ/e0QXyc4SwESw3lY/VRDdjFZhQxg3K3sRD08yE2g+UQfpqTEQchk8rEVW8mA46gAtEwdOshZ341t/mQDdDouaHoF8O9o9LmwYb7jJZyCLrWWvHqXgaPxFmm0MGreGXQ5ogQWJuI89HOZsolDibOX/7Xc5GjCd6M0ux61S1h1GotAkNUYEsRekZOtBpB9Xf8Uuw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BMirG2HiiqXKU3VvnsKs8P3yLUV/k4Ae4ep56fOOkE3V59VJSFvGXtLEDtViZ9O8rKZoupvINxIJcSBiQJbBvyeuJplkndlXjRFqFpo5ECUY9MRn0qJ/ZRSfH5V7L/HnRCSJTnNg90UHzhnCSVbZHtvz/Atd1ifP1O4GRDP4saPKX/2yYINV+ZeQoFy0QKHvYKhCC7VmLR3o7vx/TSurHc3aq35lLIG73xWt/lfMXpoJywXp6PriSHz13Po83ywkbqdU9QNBAqEsswhIOCrTimjjGdmAx45HJp+3uLEnoaqx3C4rPjE/4dpNKT1qasEx/E8huLvQ6b9yzaOPjkEhRA==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: "leo.yan@xxxxxxxxxx" <leo.yan@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Wed, 07 Sep 2022 08:53:29 +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: AQHYweQzyVikzADCFE2Bfo+zYT5rgq3ToyoAgAABNgCAAAHYAIAABH8A
  • Thread-topic: [PATCH] xen/arm: acpi: Include header file for version number

Hi Julien,

> On 7 Sep 2022, at 09:37, Julien Grall <julien@xxxxxxx> wrote:
> 
> 
> 
> On 07/09/2022 09:30, Bertrand Marquis wrote:
>>> On 7 Sep 2022, at 09:26, Julien Grall <julien@xxxxxxx> wrote:
>>> 
>>> Hi Leo,
>>> 
>>> On 06/09/2022 12:31, Leo Yan wrote:
>>>> On Arm64 Linux kernel prints log for Xen version number:
>>>>   [    0.000000] Xen XEN_VERSION.XEN_SUBVERSION support found
>>>> Because the header file "xen/compile.h" is missed, XEN_VERSION and
>>>> XEN_SUBVERSION are not defined, thus compiler directly uses the
>>>> string "XEN_VERSION" and "XEN_SUBVERSION" in the compatible string.
>>>> This patch includes the header "xen/compile.h" which defines macros for
>>>> XEN_VERSION and XEN_SUBVERSION, thus Xen can pass the version number via
>>>> hypervisor node.
>>>> Signed-off-by: Leo Yan <leo.yan@xxxxxxxxxx>
>>> 
>>> AFAICT, the problem was introduced when we split the ACPI code from 
>>> arch/domain_build.c. So I would add the following tag:
>>> 
>>> Fixes: 5d797ee199b3 ("xen/arm: split domain_build.c")
>>> 
>>> Now, this means we shipped Xen for ~4 years with the wrong compatible. The 
>>> compatible is meant to indicate the Xen version. However, I don't think 
>>> this is used for anything other than printing the version on the console.
>>> 
>>> Also, the problem occurs only when using ACPI. This is still in tech 
>>> preview, so I think we don't need to document the issue in the 
>>> documentation (we can easily break ABI).
>>> 
>>>> ---
>>>>  xen/arch/arm/acpi/domain_build.c | 1 +
>>>>  1 file changed, 1 insertion(+)
>>>> diff --git a/xen/arch/arm/acpi/domain_build.c 
>>>> b/xen/arch/arm/acpi/domain_build.c
>>>> index bbdc90f92c..2649e11fd4 100644
>>>> --- a/xen/arch/arm/acpi/domain_build.c
>>>> +++ b/xen/arch/arm/acpi/domain_build.c
>>>> @@ -9,6 +9,7 @@
>>>>   * GNU General Public License for more details.
>>>>   */
>>>>  +#include <xen/compile.h>
>>> 
>>> So this is fixing the immediate problem. Given the subtlety of the bug, I 
>>> think it would be good to also harden the code at the same time.
>> I think we should commit the patch as is and harden the code in a subsequent 
>> patch.
> 
> I thought about this. However, if we do the hardening in the same patch, then 
> it makes a lot easier to confirm that the patch works when ingested in 
> downstream code or backported.
> 
>>> 
>>> I can see two way to do that:
>>>  1) Dropping the use of __stringify
>>>  2) Check if XEN_VERSION and XEN_SUBVERSION are defined
>>> 
>>> The latter is probably lightweight. This could be added right next to 
>>> acpi_make_hypervisor_node() for clarify.
>>> 
>>> Something like:
>>> 
>>> #ifndef XEN_VERSION
>>> # error "XEN_VERSION is not defined"
>>> #endif
>>> 
>>> #ifndef XEN_SUBVERSION
>>> # error "XEN_SUBVERSION is not defined"
>>> #endif
>>> 
>>> Could you have a look?
>> There are actually several places in the code where we use the stringify 
>> system.
>> Would it make sense to actually have a string version provided in compile.h 
>> and use it instead ?
> 
> I think so.
> 
>> Otherwise if we start adding those kinds of checks, we will have to add them 
>> in at least 3 places in xen code.
> 
> The solution I proposed above is easy to implement right now. My gut feeling 
> is tweaking __stringify (or else) will take a bit more time.
> 
> If you (or Leo) can come up with a solution quickly then fine. Otherwise, I 
> think we still want some hardening for backporting purpose.

I think a define in compile.h using stringify is the easiest solution:

#define XEN_STR_VERSION "__stringify(XEN_VERSION)"."__stringify(XEN_SUBVERSION)”

And then change the code in the following source code to use it:
arch/arm/domain_build.c
arch/arm/acpi/domain_build.c
common/efi/boot.c

@Leo: tell me if you need help or want me to do it

Cheers
Bertrand

> 
> Cheers,
> 
> -- 
> Julien Grall


 


Rackspace

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