About support XZ-compressed kernel on x86

From: Baoquan He
Date: Fri Feb 12 2016 - 10:34:37 EST


Hi Lasse,

I am checking a thread related to kaslr and setup_data issue on x86:
https://lkml.org/lkml/2015/7/7/963

Now I have a question about the commit from you:

commit 303148045aac34b70db722a54e5ad94a3a6625c6
Author: Lasse Collin <lasse.collin@xxxxxxxxxxx>
Date: Wed Jan 12 17:01:24 2011 -0800

x86: support XZ-compressed kernel


In this commit for adding support of XZ-compressed kernel on x86, you
add extra 32K to the extract_offset. In commit log you said this is
because "The XZ decompressor needs around 30 KiB of heap, so the heap
size is increased to 32 KiB on both x86-32 and x86-64." With my
understanding decompression is done in decompression stage and it uses
boot_heap in arch/x86/boot/compressed/head_64.S, and boot_heap is
assigned to free_mem_ptr which is used for decompression heap malloc.
During this decompressio stage it's still in copied ZO space, why did
you add extra 32K space to extract_offset? If you want to increase the
decompression heap space shouldn't you decrease the extract_offset? Do I
misunderstand anything or miss things?

Please help answer, I really don't understand this.

Thanks
Baoquan