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.