11 Mar, 2009

1 commit


04 Feb, 2009

1 commit

  • Impact: reduce kernel BSS size by 7 pages, improve code readability

    Two page tables are used in current x86_64 kexec implementation. One
    is used to jump from kernel virtual address to identity map address,
    the other is used to map all physical memory. In fact, on x86_64,
    there is no conflict between kernel virtual address space and physical
    memory space, so just one page table is sufficient. The page table
    pages used to map control page are dynamically allocated to save
    memory if kexec image is not loaded. ASM code used to map control page
    is replaced by C code too.

    Signed-off-by: Huang Ying
    Signed-off-by: H. Peter Anvin

    Huang Ying
     

31 Oct, 2008

2 commits

  • Impact: change the kexec bootstrap code implementation from assembly to C

    This patch transforms the kexec page tables setup code from assembler
    code to C code in machine_kexec_prepare. This improves readability and
    reduces code line number.

    Signed-off-by: Huang Ying
    Signed-off-by: Ingo Molnar

    Huang Ying
     
  • Impact: save .text size when kexec is built in but not loaded

    This patch adds an architecture specific struct kimage_arch into
    struct kimage. The pointers to page table pages used by kexec are
    added to struct kimage_arch. The page tables pages are dynamically
    allocated in machine_kexec_prepare instead of statically from BSS
    segment. This will save up to 20k memory when kexec image is not
    loaded.

    Signed-off-by: Huang Ying
    Signed-off-by: Ingo Molnar

    Huang Ying
     

23 Oct, 2008

2 commits