On Wed, Feb 4, 2009 at 11:29 AM, Simon Horman <horms at 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