[PATCH v3 08/21] vmcore: copy non page-size aligned head and tail pages in 2nd kernel

Andrew Morton akpm at linux-foundation.org
Tue Mar 19 15:37:46 EDT 2013


On Sat, 16 Mar 2013 13:01:32 +0900 HATAYAMA Daisuke <d.hatayama at jp.fujitsu.com> wrote:

> Due to mmap() requirement, we need to copy pages not starting or
> ending with page-size aligned address in 2nd kernel and to map them to
> user-space.
> 
> For example, see the map below:
> 
>     00000000-00010000 : reserved
>     00010000-0009f800 : System RAM
>     0009f800-000a0000 : reserved
> 
> where the System RAM ends with 0x9f800 that is not page-size
> aligned. This map is divided into two parts:
> 
>     00010000-0009f000
>     0009f000-0009f800
> 
> and the first one is kept in old memory and the 2nd one is copied into
> buffer on 2nd kernel.
> 
> This kind of non-page-size-aligned area can always occur since any
> part of System RAM can be converted into reserved area at runtime.
> 
> If not doing copying like this and if remapping non page-size aligned
> pages on old memory directly, mmap() had to export memory which is not
> dump target to user-space. In the above example this is reserved
> 0x9f800-0xa0000.

Ah.  This is all the missing info from [patch 07/21].  I suggest we
join 7 and 8 into a single patch, use the above changelog, add the
MEM_TYPE_CURRENT_KERNEL code comments.




More information about the kexec mailing list