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

Re: [PATCH v4 01/13] xen/arm64: head.S: Introduce enable_{boot,secondary}_cpu_mm


  • To: Julien Grall <julien@xxxxxxx>, Henry Wang <Henry.Wang@xxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Ayan Kumar Halder <ayankuma@xxxxxxx>
  • Date: Mon, 7 Aug 2023 13:41:16 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none
  • 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=02CKm/SnpetlFdMVq5ZRrNDcvVOyMucAFhXy8uL9PIQ=; b=SiidKtFBA08WylCniIKv/hwlZld51GFl68WG7CU8e3fGtmBAO5kMoGa9oIQcdzyRX0VNJm/gHzMKZ/V93BZ0HbaKxNBeIARXf5GFWUr3j0a/054oyjs/TvAXaK0/YCsWxqPbuFEJNdsiq/ou0QIk/UTCy6ihyXrf+N9ty+yuqRThMuUmz1PivaPizPG4PY1uqgqS9/2TZFhvEOom0LeSm0PsijXt617so39HiZ7dTWbDcL50wBoyu0bIh2FtpuqyVCKLoEIFe5GqLJ7MbBjkA6vsEdwcLj5r8ojco+gkjUKGEzS0IPFJcYc+Z+puAyVTfcFjLTc8I7STJEXjJ2XdOw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YvJHcgKgSJO7iqUWJxQAprIpYpxAbVgQ3W8u1ZDrZwoLXu0WcKnY7s6FGwJmwr0Yb/IXEVWXryyp9JuFd0pNc/6/zPVtBP/9D6tAps4nNT29ue9mZb5vOkgmxRQUMqI9n+J6KYw1kDRVYS2ZtxstqJz4X4GESWSkHJ0ymw0nVC9LLDKCrlj1eB7RNumbGB4vxSw3W8+i+8UiLjKNG2C1CZYcSL3pzRtoDXHWOGLgSCs899132P7WduItF9gpcfn9CzoIpgQIicIyaJdgKBml8qOtuKlFI7nK3tG27Q11cSiqEyWievQF/BScnNMmVikmvBWOJPNc2vrw7nLPUaicJw==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com;
  • Cc: Wei Chen <Wei.Chen@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Bertrand Marquis <Bertrand.Marquis@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Penny Zheng <Penny.Zheng@xxxxxxx>
  • Delivery-date: Mon, 07 Aug 2023 12:41:34 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Hi Julien/Henry,

Thanks for the explanation.

On 07/08/2023 12:47, Julien Grall wrote:


On 07/08/2023 12:43, Ayan Kumar Halder wrote:

On 07/08/2023 12:35, Henry Wang wrote:
Hi Ayan,

-----Original Message-----
Hi Henry,

At the moment, on MMU system, enable_mmu() will return to an
address in the 1:1 mapping, then each path is responsible to
switch to virtual runtime mapping. Then remove_identity_mapping()
is called on the boot CPU to remove all 1:1 mapping.

Since remove_identity_mapping() is not necessary on Non-MMU system,
and we also avoid creating empty function for Non-MMU system, trying
to keep only one codeflow in arm64/head.S, we move path switch and
remove_identity_mapping() in enable_mmu() on MMU system.

As the remove_identity_mapping should only be called for the boot
CPU only, so we introduce enable_boot_cpu_mm() for boot CPU and
enable_secondary_cpu_mm() for secondary CPUs in this patch.

Signed-off-by: Wei Chen <wei.chen@xxxxxxx>
Signed-off-by: Penny Zheng <penny.zheng@xxxxxxx>
Signed-off-by: Henry Wang <Henry.Wang@xxxxxxx>
With two comments

Reviewed-by: Ayan Kumar Halder <ayan.kumar.halder@xxxxxxx>

Tested-by: Ayan Kumar Halder <ayan.kumar.halder@xxxxxxx>
Thanks, and...

+/*
+ * Enable mm (turn on the data cache and the MMU) for secondary CPUs. + * The function will return to the virtual address provided in LR (e.g. the
+ * runtime mapping).
+ *
+ * Inputs:
+ *   lr : Virtual address to return to.
+ *
+ * Clobbers x0 - x5
+ */
+enable_secondary_cpu_mm:
I will prefer "enable_secondary_cpu_mmu" as it is MMU specific. And ...
...actually this as well as...

+/*
+ * Enable mm (turn on the data cache and the MMU) for the boot CPU.
+ * The function will return to the virtual address provided in LR (e.g. the
+ * runtime mapping).
+ *
+ * Inputs:
+ *   lr : Virtual address to return to.
+ *
+ * Clobbers x0 - x5
+ */
+enable_boot_cpu_mm:
prefer "enable_boot_cpu_mmu" as it is MMU specific as well.
...this, are the name suggested by Julien in [1], so probably I will stick
to these names, unless he would prefer the proposed names. I would
personally prefer the names that Julien suggested too, because from
the comments above these two functions, these functions not only
enable the MMU, but also turn on the d-cache, hence a more generic
name (using "mm"), is more appropriate here I guess.

[1] https://lore.kernel.org/xen-devel/c10bc254-ad79-dada-d5fb-9ee619934ffb@xxxxxxx/

This is fine. My concern is minor.

If this file is going to contain MPU specific logic as well in future, then suffixing a *_mmu might help to distinguish the two.

For this series, it is quite important to look at the end result. In this case, the MMU logic will be moved in its own file. enable_boot_cpu_mm() and enable_second_cpu_mm() will be implemented differently between the MMU and MPU to avoid #ifdeferay in head.S.

Makes sense. I am happy with it.

- Ayan


Cheers,




 


Rackspace

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