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

RE: [PATCH v5 1/8] xen/arm: introduce static shared memory


  • To: Julien Grall <julien@xxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Penny Zheng <Penny.Zheng@xxxxxxx>
  • Date: Wed, 13 Jul 2022 02:42:00 +0000
  • Accept-language: 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=3pzNI4diC0sXRof6JLCyc3g6ztWYqp7CAXlXODf2eFQ=; b=JL4EiIt+jYw9FRecAs3iqov8XQ0nPG70kLL0teVfGgPt6w7z1BRIfuejo+Es4ZGHZTnstfLj5aLQpB0FTnjJIJX/lFzgPOi2pbw7SFaXEuIpF5KJi+6KMgjWdZYJInWyX9CTnzsY+vbL4Kzdj8wrMMtjpP2Az3gfb5uKd1kr87N3TsZftei9YAo3JI5r+iioB5dyxh7UZXjq0iIy0wru/KczCuMjBsuBE2fQQNgdIriHyVCTodDSdEUxBg1fYOSyjwED3Ai2Qny+YiTRbLTc1mnD3jipoTOWmKPid7kf+N7TNHmep3wBSGLkshsNyJcM+drzpPdD+Nn7fRBpptYFOA==
  • 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=3pzNI4diC0sXRof6JLCyc3g6ztWYqp7CAXlXODf2eFQ=; b=RAfJZ96fuqDro/Fh0jKYH+JiEOlKa0jVqCp/hmPHax/ALVL1IL8pwH7zR1mj0GvOFUOYF5nTe8E7fEAua9aVaCpHbLHu9b2f5N8ZYB8PtPPuLJFrKupDeTNHgqeFH3gbMAoLkOZ5FANLz9VJLv6kbxfW3+W/KJuSfh/8HGCeJ4+Y1HrvQ122QxYiD9Z+Sz6p580zz0/D15Fua5Im0pnBN6nqNIaug6BFHTkGDW/gvOLgOVxTxSNQlgt9buB9FkkVw9oZTfNc94PolCI4xaQ37YcihltbEU4e5ZgbTkvDmJk4XXdRVmRSEOkyT2o6/bxbrNdxkrOfUM1wsDgPsesSnA==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=e8cmxMDa254VLRB+36V9DWIal9JFHrIGoFbmD2SoKBmLui1MmZhcBIuPlfi3jDKESJwoWrMIsQ/roRpjOKVNIl9ZrjMm59bi83/5bquhMsNNuZlXJeO/NioBf5kGboztwBl0Rqby3kRjwRZNl0wMXf2E12rkDBIvxQsxO8TsDbp5Nu8n+/kgcuQguQtlUAzakLlAcaxdMniIj+NO1R354nsIYH0uccw/HpeCYljKoZdbsDIi1NVFc/7NhUjXnRca/oadG3lnM8XeQbqJJd2B1AuyfXjCqaQFUUulOpBGjhT8yn285wq3sWZ7RgrM1GxPUPIrs9b/0kWLinGTchNtvQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BVxe1OYyYpOp0rYpfDb0P0j454m/v+qAuuSNjNgK6Tvwz1t8R5KP06tgp+KkL4h6FUvWROEdsPDZHOCR+ELTXtq8m6py9mTXvhpiYe7vPjRv+97AYXWc/+KOgcx+HvuJb0BiZeVYxbHZs5gNa3WRBYcO6BeASC96kqFICu78oqB3GU3I/2/01sD8SCpaC13q/6tfa4x+0wyv6PSh5H9CxqwReOb9HvhRgMlhhn0k8V8TMyEIyFmaTyvfcgRosn5K2UZfr69rTyJ4TtRjGerYoMfel7vymaXT5lgnHCxwvAnV0t8olFGsSngNQaUH34igqzYXiaa5bKPlpIBod8z9qQ==
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: Wei Chen <Wei.Chen@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Bertrand Marquis <Bertrand.Marquis@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
  • Delivery-date: Wed, 13 Jul 2022 02:42:46 +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: AQHYhGRAIMWAAZoglEyYz3pT8Ubq/a1e3kuAgAboQaCAAHOqgIAVfzCA
  • Thread-topic: [PATCH v5 1/8] xen/arm: introduce static shared memory

Hi Julien

Before submitting the v6 patch series, I would like to double confirm that ...

> -----Original Message-----
> From: Julien Grall <julien@xxxxxxx>
> Sent: Wednesday, June 29, 2022 6:18 PM
> To: Penny Zheng <Penny.Zheng@xxxxxxx>; xen-devel@xxxxxxxxxxxxxxxxxxxx
> Cc: Wei Chen <Wei.Chen@xxxxxxx>; Stefano Stabellini
> <sstabellini@xxxxxxxxxx>; Bertrand Marquis <Bertrand.Marquis@xxxxxxx>;
> Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
> Subject: Re: [PATCH v5 1/8] xen/arm: introduce static shared memory
> 
> 
> 
> On 29/06/2022 06:38, Penny Zheng wrote:
> > Hi Julien
> 
> Hi Penny,
> 
> >
> >> -----Original Message-----
> >> From: Julien Grall <julien@xxxxxxx>
> >> Sent: Saturday, June 25, 2022 1:55 AM
> >> To: Penny Zheng <Penny.Zheng@xxxxxxx>; xen-
> devel@xxxxxxxxxxxxxxxxxxxx
> >> Cc: Wei Chen <Wei.Chen@xxxxxxx>; Stefano Stabellini
> >> <sstabellini@xxxxxxxxxx>; Bertrand Marquis
> >> <Bertrand.Marquis@xxxxxxx>; Volodymyr Babchuk
> >> <Volodymyr_Babchuk@xxxxxxxx>
> >> Subject: Re: [PATCH v5 1/8] xen/arm: introduce static shared memory
> >>
> >> Hi Penny,
> >>
> >> On 20/06/2022 06:11, Penny Zheng wrote:
> >>> From: Penny Zheng <penny.zheng@xxxxxxx>
> >>>
> >>> This patch serie introduces a new feature: setting up static
> >>
> >> Typo: s/serie/series/
> >>
> >>> shared memory on a dom0less system, through device tree configuration.
> >>>
> >>> This commit parses shared memory node at boot-time, and reserve it
> >>> in bootinfo.reserved_mem to avoid other use.
> >>>
> >>> This commits proposes a new Kconfig CONFIG_STATIC_SHM to wrap
> >>> static-shm-related codes, and this option depends on static memory(
> >>> CONFIG_STATIC_MEMORY). That's because that later we want to reuse a
> >>> few helpers, guarded with CONFIG_STATIC_MEMORY, like
> >>> acquire_staticmem_pages, etc, on static shared memory.
> >>>
> >>> Signed-off-by: Penny Zheng <penny.zheng@xxxxxxx>
> >>> Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> >>> ---
> >>> v5 change:
> >>> - no change
> >>> ---
> >>> v4 change:
> >>> - nit fix on doc
> >>> ---
> >>> v3 change:
> >>> - make nr_shm_domain unsigned int
> >>> ---
> >>> v2 change:
> >>> - document refinement
> >>> - remove bitmap and use the iteration to check
> >>> - add a new field nr_shm_domain to keep the number of shared domain
> >>> ---
> >>>    docs/misc/arm/device-tree/booting.txt | 120
> >> ++++++++++++++++++++++++++
> >>>    xen/arch/arm/Kconfig                  |   6 ++
> >>>    xen/arch/arm/bootfdt.c                |  68 +++++++++++++++
> >>>    xen/arch/arm/include/asm/setup.h      |   3 +
> >>>    4 files changed, 197 insertions(+)
> >>>
> >>> diff --git a/docs/misc/arm/device-tree/booting.txt
> >>> b/docs/misc/arm/device-tree/booting.txt
> >>> index 98253414b8..6467bc5a28 100644
> >>> --- a/docs/misc/arm/device-tree/booting.txt
> >>> +++ b/docs/misc/arm/device-tree/booting.txt
> >>> @@ -378,3 +378,123 @@ device-tree:
> >>>
> >>>    This will reserve a 512MB region starting at the host physical address
> >>>    0x30000000 to be exclusively used by DomU1.
> >>> +
> >>> +Static Shared Memory
> >>> +====================
> >>> +
> >>> +The static shared memory device tree nodes allow users to
> >>> +statically set up shared memory on dom0less system, enabling
> >>> +domains to do shm-based communication.
> >>> +
> >>> +- compatible
> >>> +
> >>> +    "xen,domain-shared-memory-v1"
> >>> +
> >>> +- xen,shm-id
> >>> +
> >>> +    An 8-bit integer that represents the unique identifier of the
> >>> + shared
> >> memory
> >>> +    region. The maximum identifier shall be "xen,shm-id = <0xff>".
> >>> +
> >>> +- xen,shared-mem
> >>> +
> >>> +    An array takes a physical address, which is the base address of the
> >>> +    shared memory region in host physical address space, a size,
> >>> + and a
> >> guest
> >>> +    physical address, as the target address of the mapping. The
> >>> + number of
> >> cells
> >>> +    for the host address (and size) is the same as the guest pseudo-
> physical
> >>> +    address and they are inherited from the parent node.
> >>
> >> Sorry for jump in the discussion late. But as this is going to be a
> >> stable ABI, I would to make sure the interface is going to be easily
> extendable.
> >>
> >> AFAIU, with your proposal the host physical address is mandatory. I
> >> would expect that some user may want to share memory but don't care
> >> about the exact location in memory. So I think it would be good to
> >> make it optional in the binding.
> >>
> >> I think this wants to be done now because it would be difficult to
> >> change the binding afterwards (the host physical address is the first set 
> >> of
> cells).
> >>
> >> The Xen doesn't need to handle the optional case.
> >>

... what you suggested here is that during "xen,shared-mem" device tree property
parsing process, if we find that user doesn't provide physical address, we will 
output
an error, saying that it is not supported at the moment, right?

> >
> > Sure, I'll make "the host physical address" optional here, and right
> > now, with no actual code implementation. I'll make up it later in free
> > time~
> >
> > The user case you mentioned here is that we let xen to allocate an
> > arbitrary static shared memory region, so size and guest physical address
> are still mandatory, right?
> 
> That's correct.
> 
> Cheers,
> 
> --
> Julien Grall

 


Rackspace

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