[PATCH RFC 0/3] arm64: disable/enable d-cache support for

Pratyush Anand panand at redhat.com
Mon May 4 07:41:51 PDT 2015



On Monday 04 May 2015 06:32 PM, Pratyush Anand wrote:
> These patches add support for enable/disable d cache support. It reduces
> time for sha verification from more than 2 min to 3-4 sec on my
> platform.
> There are some of the observation which I am unable to explain.
> * It takes around 18 sec when I boot a kexec kernel and around 3-4 sec
> * when I boot a crash kernel. In case of kexec kernel start of 1st
> * segment is at 0000004000280000 and, end of last segment is at
> * 00000040029c0000. In case of crash kernel start of 1st segment is at
> * 00000041b9080000 and, end of last segment is at 00000041f9000000.

There is one more observation which is not explainable :(
While executing a secondary kernel using kexec -e, if sha256_process() 
function is aligned at offset 256, it takes 18 sec else it takes double 
ie 36 sec.

# objdump -d purgatory/purgatory.ro | grep sha256_process
0000000000001300 <sha256_process>:

-> takes 18 sec

If because of some changes in code, this function shifts a bit
# objdump -d purgatory/purgatory.ro | grep sha256_process
0000000000001310 <sha256_process>:

-> takes 36 sec.

So,  "__attribute__ ((aligned (256))) void sha256_process( 
sha256_context *ctx, const uint8_t data[64] )" guarantees constant 
execution time, but how can this be justified?

~Pratyush




More information about the kexec mailing list