Subject: [PATCH] kexec: Add --lite option

From: [email-masked] (Pratyush Anand)
Date: Mon, 7 Dec 2015 17:18:39 +0530

Sorry, forgot to add linux-arm-kernel at lists.infradead.org. Now CCed.

On 07/12/2015:05:15:47 PM, Pratyush Anand wrote:
> +linux-arm-kernel at lists.infradead.org (May be someone from arm kernel list can
> give some more input)
> 
> On 04/11/2015:11:56:51 PM, Scott Wood wrote:
> > On Thu, 2015-10-22 at 12:08 -0700, Geoff Levand wrote:
> > > I notice the difference on the my arm64 system, so I guess we
> > > are even on that.
> > 
> > For me it was beyond "notice the difference" -- I thought it was completely 
> > broken, and was preparing to debug, until it started spitting out output over 
> > a minute later.
> > 
> > Compiling the sha256 code with -O2 instead of -O0 cut it down to around 10 
> > seconds (still unpleasant, but not quite as crazy... still unacceptable for 
> > non-kdump, though).
> 
> Yes, compiling purgatory code with -O2 helps to improve the timing, and I notice
> that enabling D-cache on top of -O2 does not improve it further. However, I am
> still not able to understand that why there is huge difference between following
> two.
> 
> 1) When we execute kexec() system call in first kernel, at that time it
> calculates sha256 on all the binaries [1]. It take almost un-noticeable time
> (less than a sec) there.
> 
> 2) When purgatory is executed then it re-calculates sha256 using same routines
> [2] on same binary data as that of case (1). But, now it takes 10-20 sec
> (depending of size of binaries)?
> 
> Why did not it take same time with O2 + D-cache enabled? I think, we should be
> able to achieve same time in second case as well. What is missing?
> 
> ~Pratyush
> 
> [1] http://git.kernel.org/cgit/utils/kernel/kexec/kexec-tools.git/tree/kexec/kexec.c#n650
> [2] http://git.kernel.org/cgit/utils/kernel/kexec/kexec-tools.git/tree/purgatory/purgatory.c#n20