On Tue, Dec 03, 2013 at 10:18:16AM +0900, HATAYAMA Daisuke wrote: > (2013/12/03 0:27), Vivek Goyal wrote: > >On Thu, Nov 28, 2013 at 05:48:02PM +0900, HATAYAMA Daisuke wrote: > >>Hello Vivek, > >> > >>Here is a patch set for mmap failure for /proc/vmcore. > >>Could you try to use this on the problematic system? > >> > >>This patch doesn't copy partial pages to the 2nd kernel, only prepares > >>vmcore objects for respective partial pages to invoke remap_pfn_range() > >>for individual partial pages. > > > >Hi Hatayama, > > > >Thanks for the patch. Ok, I see that partial pages will be put in a separate > >call to remap_oldmem_pfn_range() and this time it should succeed. > > > >I am wondering what do you think about your old approach of copying > >only relevant old memory to a new kernel page in new kernel. I kind > >of feel little uncomfortable with the idea of rounding down start > >and roudning up end to page size boundaries and then accessing the > >full page using oldmem interface. A safer approach might be to allocate > >page in new kernel, read *only* those bytes as reported by elf header > >and fill rest of the page with zeros. > > > >Thanks > >Vivek > > > > Even if copying partial pages into the 2nd kernel, we need to use ioremap() > once on them, and I think the ioremap() is exactly similar to > remap_pfn_range() for a single page. There seems no difference on safeness > between them. Hmm.., that's a good point. So anyway we will map the full page and read parts of it. > > Also, current /proc/vmcore shows user-land tools a shape with holes not > filled with zeros both in case of read() and in case of mmap(). If we adapt > copying one without reading data in holes, shape of /proc/vmcore gets > changed again. I will not be worried about this as contents of those holes are undefined. And if we replace undefined with zeros, it should not break any application. Thanks Vivek