[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: Henry Wang <Henry.Wang@xxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Ayan Kumar Halder <ayankuma@xxxxxxx>
  • Date: Mon, 7 Aug 2023 12:43:24 +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=Bw1okKu3nBH6WxItlWol5D5VupEkzRThDOrgmot4L/4=; b=KV6Fvst94EaN8d1SeRnxEThrsFMKhEPku6R8neJGBvzR0V5AcrvrecgGWfxICl2AYTE50Sl+mgmZdPXokujweS8/01BBIoWo5VClg98IMRyXPA3HaTKVGOobKDTLwr7ckSMiGb+oHGCyXQ7FhJR7/zgTm/IbTCAVHq1BZGg1NuLUviEoYFQeLI7s2RnPzxWPtpYMWPjC0wgEynn1Awk91UrQs+2bPh0vfoYH8dSkNfMIcc4TP/elj++mUktLtj8Kpczj/5NCuFTKOx/U3Q3UlR69ybypnqnfw/vlusXPZmlLXaixhiJvkelu28VY4Oo9BJNG090aPdl95uxu03K+lg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dHJexwoFqvydswbM/fv8aCGmg1tRTiWwi8RanMUf3lrsfd77ZbLqL06nDI4ZDB2cKKjJ3rs/76PU7JEH5i9RwNzoymE7OxuR3b+kq5qstMHCH+qgr29cOkfYIEkeI5jStKmdE5V0FB7PUCwDwycX/m1Ot3SnBXBZ0f6jWBRGxI2d6EcPh1vCv78fWd4o4o82yAgY1fmHtI6EW2GJ0gFYxqibSqRCDNDKPlJt71eTs2wSbmnwQ2CQlpJWVygYrtWG4qyCm9v6UuxHm/kHkmsJ9D3fFnEsMxSXunPyLoljANWHz5e6w36CUWiYdzHvKlHodCZzmIZVPBZ4QyO/MLwmFA==
  • 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>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <Bertrand.Marquis@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Penny Zheng <Penny.Zheng@xxxxxxx>
  • Delivery-date: Mon, 07 Aug 2023 11:43:51 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>


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.

- Ayan


Kind regards,
Henry

- Ayan



 


Rackspace

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