Messages in this thread | | | Date | Wed, 4 Feb 2009 12:06:52 +0900 | Subject | Re: [PATCH resend] kexec/x86_64: Use one page table in x86_64 machine_kexec | From | Magnus Damm <> |
| |
On Wed, Feb 4, 2009 at 11:29 AM, Simon Horman <horms@verge.net.au> wrote: > On Tue, Feb 03, 2009 at 02:22:48PM +0800, Huang Ying wrote: >> 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. > > Hi Huang, > > this patch looks quite nice to me. I am CCing my former colleague Magnus > Damm for comment. He did some work in this area a little while ago.
Thanks for the ping Simon!
I like the idea of dynamically allocating pages and writing code in C instead of ASM. In fact, this patch is not so far away from what V2 of my patches did a few years ago:
http://lkml.org/lkml/2006/5/24/12
For one reason or another this wasn't acceptable at that point so I rewrote things and V4 got merged with static page tables and ASM code.
This patch is a step in the right direction IMO, but I'm not sure how it affects the Xen dom0 implementation. Does it still work and/or does anyone care?
Cheers,
/ magnus
| |