]> git.baikalelectronics.ru Git - kernel.git/commit
x86: kexec: Use one page table in x86_64 machine_kexec
authorHuang Ying <ying.huang@intel.com>
Tue, 3 Feb 2009 06:22:48 +0000 (14:22 +0800)
committerH. Peter Anvin <hpa@zytor.com>
Wed, 4 Feb 2009 02:29:18 +0000 (18:29 -0800)
commit1712e3310ab5115a9092bfd7c93a2961f6c8bdd7
tree5de5beef9b17d72e99a9691f8bbd4459c9228e45
parent49e742e33f346f0c8d59b1caaf5544ac9a91134e
x86: kexec: Use one page table in x86_64 machine_kexec

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 <ying.huang@intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/include/asm/kexec.h
arch/x86/kernel/machine_kexec_64.c
arch/x86/kernel/relocate_kernel_64.S