From mboxrd@z Thu Jan 1 00:00:00 1970 From: achandran@mvista.com (Arun Chandran) Date: Fri, 25 Jul 2014 16:01:04 +0530 Subject: Kexec on arm64 In-Reply-To: <1406247468.4062.59.camel@smoke> References: <1405443898.22585.7.camel@smoke> <1405551861.7262.26.camel@smoke> <1406162287.4062.39.camel@smoke> <20140724093603.GC4079@leverpostej> <1406247468.4062.59.camel@smoke> Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Fri, Jul 25, 2014 at 5:47 AM, Geoff Levand wrote: > Hi, > > On Thu, 2014-07-24 at 10:36 +0100, Mark Rutland wrote: >> On Thu, Jul 24, 2014 at 01:38:07AM +0100, Geoff Levand wrote: > >> > All memory management for the main cpu is done by the arch code. Kexec >> > and cpu hot plug only work with the secondary cpus, so the problem would >> > be in the arch memory code, either in setup_restart() for shutdown, or >> > in the startup code. >> >> It's possible that soft_restart and setup_restart are a little dodgy, as >> they also rely on the compiler being smart and not touching the stack >> after setup_restart(). >> >> However, they provide absolutely no guarantee that any data has been >> flushed out to the PoC [1]. If you require any data to be flushed out to the >> PoC so as to be visible to noncacheable accesses, you will need to >> ensure that this is flushed by VA before soft_restart is called. Data >> may have migrated to another cache (e.g. another CPU, or the L3) where >> it is not visible. > > OK, kexec's reset routine relocate_new_kernel does use a few global > variables that are set by the main kexec routines. I added a call to > __flush_dcache_area(), which uses 'dc civac' for those. > > I had thought the call to __flush_dcache_all, which uses 'dc cisw', in > flush_cache_all() would be enough. > > Arun, I also fixed UP builds. Could you pull my latest and try with L3 > enabled? I tried it but kexeced kernel fails to boot. Ran the code with and without the call to cpu_cache_off(); in arch/arm64/kernel/process.c. I have put more details in another mail. Please see that. --Arun > > -Geoff >