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