From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH RFC 12/35] ARM64: Initialization of cpu_logical_map(0) Date: Wed, 11 Feb 2015 13:09:32 +0800 Message-ID: <54DAE40C.10808@linaro.org> References: <1423058539-26403-1-git-send-email-parth.dixit@linaro.org> <1423058539-26403-13-git-send-email-parth.dixit@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Stefano Stabellini , parth.dixit@linaro.org Cc: ian.campbell@citrix.com, Naresh Bhat , tim@xen.org, xen-devel@lists.xen.org, stefano.stabellini@citrix.com, Hanjun Guo , jbeulich@suse.com, christoffer.dall@linaro.org List-Id: xen-devel@lists.xenproject.org Hi Stefano, On 05/02/2015 18:26, Stefano Stabellini wrote: > On Wed, 4 Feb 2015, parth.dixit@linaro.org wrote: >> From: Naresh Bhat >> >> Initialization of cpu_logical_map(0) before acpi_boot_init() >> >> Signed-off-by: Hanjun Guo >> Signed-off-by: Naresh Bhat >> --- >> 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 >> #include >> #include >> +#include >> >> 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