On Tue, Mar 19, 2013 at 01:59:57PM -0700, Eric W. Biederman wrote: > HATAYAMA Daisuke <d.hatayama at jp.fujitsu.com> writes: > > > 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. > > So I have a question. Would it not be easier to only support mmaping on > the things that are easily mmapable? And in the oddball corner cases > require reading the data instead. Hi Eric, Are you saying that some parts of the vmcore file will support mmap() and others will not. If yes, how would a user know which parts of file are mappable and which are not. Thanks Vivek