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

Re: [Xen-devel] [PATCH RFC 12/35] ARM64: Initialization of cpu_logical_map(0)

Hi Stefano,

On 05/02/2015 18:26, Stefano Stabellini wrote:
On Wed, 4 Feb 2015, parth.dixit@xxxxxxxxxx wrote:
From: Naresh Bhat <naresh.bhat@xxxxxxxxxx>

Initialization of cpu_logical_map(0) before acpi_boot_init()

Signed-off-by: Hanjun Guo <hanjun.guo@xxxxxxxxxx>
Signed-off-by: Naresh Bhat <Naresh.Bhat@xxxxxxxxxx>
  xen/arch/arm/setup.c | 5 +++++
  1 file changed, 5 insertions(+)

diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
index 3531d47..569b2da 100644
--- a/xen/arch/arm/setup.c
+++ b/xen/arch/arm/setup.c
@@ -47,6 +47,7 @@
  #include <xsm/xsm.h>
  #include <xen/acpi.h>
  #include <asm/acpi.h>
+#include <asm-arm/cputype.h>

  struct bootinfo __initdata bootinfo;

@@ -749,6 +750,10 @@ void __init start_xen(unsigned long boot_phys_offset,

  #if defined(CONFIG_ACPI) && defined(CONFIG_ARM_64)
+    /* Get the boot CPU's MPIDR before cpu logical map is built */
+    cpu_logical_map(0) = read_cpuid_mpidr() & MPIDR_HWID_BITMASK;

Isn't the current cpu_logical_map initialization in smp_init_cpus()
enough?  If you want to initialize cpu_logical_map earlier, you need to
move the initialization earlier, removing the old one: we cannot have
two places where Xen initialize cpu_logical_map(0).

The ACPI is retrieving the CPU in acpi_boot_init (see patch #11). Having this patch separate made this code difficult to understand.

Although, I don't see why we can't defer the parsing of the CPU table in smp_init_cpu().

FWIW, it's where we get CPU from the DT.


Julien Grall

Xen-devel mailing list



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