HATAYAMA Daisuke <d.hatayama at jp.fujitsu.com> writes: > From: "Eric W. Biederman" <ebiederm at xmission.com> > Subject: Re: [PATCH v3 18/21] vmcore: check if vmcore objects satify mmap()'s page-size boundary requirement > Date: Wed, 20 Mar 2013 23:29:05 -0700 > >> HATAYAMA Daisuke <d.hatayama at jp.fujitsu.com> writes: >>> >>> Do you mean for each range represented by each PT_LOAD entry, say: >>> >>> [p_paddr, p_paddr + p_memsz] >>> >>> extend it as: >>> >>> [rounddown(p_paddr, PAGE_SIZE), roundup(p_paddr + p_memsz, PAGE_SIZE)]. >>> >>> not only objects in vmcore_list, but also updating p_paddr and p_memsz >>> members themselves of each PT_LOAD entry? In other words, there's no >>> new holes not referenced by any PT_LOAD entry since the regions >>> referenced by some PT_LOAD entry, themselves are extended. >> >> No. p_paddr and p_memsz as exported should remain the same. >> I am suggesting that we change p_offset. >> >> I am suggesting to include the data in the file as if we had changed >> p_paddr and p_memsz. >> >>> Then, the vmcores seen from read and mmap methods are coincide in the >>> direction of including both ranges >>> >>> [rounddown(p_paddr, PAGE_SIZE), p_paddr] >>> >>> and >>> >>> [p_paddr + p_memsz, roundup(p_paddr + p_memsz, PAGE_SIZE)] >>> >>> are included in both vmcores seen from read and mmap methods, although >>> they are originally not dump target memory, which you are not >>> problematic for ease of implementation. >>> >>> Is there difference here from you understanding? >> >> Preserving the actual PT_LOAD segments p_paddr and p_memsz values is >> important. p_offset we can change as much as we want. Which means there >> can be logical holes in the file between PT_LOAD segments, where we put >> the extra data needed to keep everything page aligned. >> > > So, I have to make the same question again. Is it OK if two vmcores > are different? How do you intend the ``extra data'' to be deal with? I > mean mmap() has to export part of old memory as the ``extra data''. > > If you think OK, I'll fill the ``extra data'' with 0 in case of read > method. If not OK, I'll fill with the corresponding part of old > memory. I think the two having different contents violates the principle of least surprise. I think exporting the old memory as the ``extra data'' is the least surprising and the easiest way to go. I don't mind filling the extra data with zero's but I don't see the point. Eric