[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
|