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. Eric