[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)
 
- To: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>, 	parth.dixit@xxxxxxxxxx
 
- From: Julien Grall <julien.grall@xxxxxxxxxx>
 
- Date: Wed, 11 Feb 2015 13:09:32 +0800
 
- Cc: ian.campbell@xxxxxxxxxx, Naresh Bhat <naresh.bhat@xxxxxxxxxx>, tim@xxxxxxx,	xen-devel@xxxxxxxxxxxxx, stefano.stabellini@xxxxxxxxxx,	Hanjun Guo <hanjun.guo@xxxxxxxxxx>, jbeulich@xxxxxxxx,	christoffer.dall@xxxxxxxxxx
 
- Delivery-date: Wed, 11 Feb 2015 05:09:53 +0000
 
- List-id: Xen developer discussion <xen-devel.lists.xen.org>
 
 
 
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)
      acpi_boot_table_init();
+
+    /* Get the boot CPU's MPIDR before cpu logical map is built */
+    cpu_logical_map(0) = read_cpuid_mpidr() & MPIDR_HWID_BITMASK;
+
      acpi_boot_init();
  #endif
 
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.
Regards,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
 
 
    
     |