kexec fails to boot kernels where CONFIG_RANDOMIZE_BASE=y is set

Kees Cook keescook at
Thu Aug 21 08:57:09 PDT 2014

On Wed, Aug 20, 2014 at 9:33 AM, Vivek Goyal <vgoyal at> wrote:
> On Tue, Aug 19, 2014 at 05:07:24PM +0800, WANG Chao wrote:
>> On 08/18/14 at 10:57am, Vivek Goyal wrote:
>> > Hi Thomas,
>> >
>> > I think kexec is broken with CONFIG_RANDOMIZE_BASE=y. Chao had raised
>> > this issue some time back when this option was introduced. I don't
>> > remember the details though that why it is broken.

The "normal" problems with kaslr have to do with areas of memory that
shouldn't be stomped on, or if 1-to-1 page tables are not in place.
What state are the page tables in when doing the kexec, and how are
kernel parameters (including e820) passed?

>> The following fix the problem for kdump case:
>> commit 0d52644
>> Author: WANG Chao <chaowang at>
>> Date:   Fri Mar 28 15:05:00 2014 +0800
>>     x86, kaslr: add alternative way to locate kernel text mapping area

I don't see this in Linus's tree? Where can I find this commit?

>> For kexec case, it hangs in purgatory:
>> [  556.859384] kexec: Starting new kernel
>> I'm in purgatory
> Chao,
> Do you know why does it hang in purgatory in case of kexec?
> Thanks
> Vivek


Kees Cook
Chrome OS Security

More information about the kexec mailing list