On 02/25/2016 07:35 PM, Atsushi Kumagai wrote:
> Hello Dave,
>
>>> Note that PAGE_MAPPING_ANON is now only set in the compound_head page,
>>> so when makedumpfile walks though the pages, it will have to look
>>> at each page's head page for the bit setting.
>>
>> Thanks for your report.
>> As you said, it seems checking the head page like kernel does is necessary.
>> I'll try to work it out, please give me some time.
>
> Reading head page's page->mapping for each tail page will take extra time,
> so I contrived another way.
>
> It's just skipping compound tail pages for filtering.
> If makedumpfile excludes compound pages, it will be done at a time by
> exclude_range() at the time of checking the compound head page. We don't
> need to check compound tail pages individually.
>
> I made the patch, could you test the *compound* branch below ?
> This version requires a new unexported symbol, you need to specify
> -x vmlinux for now.
>
>
https://sourceforge.net/p/makedumpfile/code/ci/compound/tree/
Hi Atsushi, Dave,
Running the makedumpfile compound branch on 4.5-rc5 and this kdump.conf
setting:
core_collector makedumpfile -l --message-level 1 -d 31 -x
/kdumproot/var/crash/vmlinux
I was able to collect and successfully read a few test dumps without
incident. This was inside a VM without any interesting system load, but
was regularly giving me issues before the patch.
Great, thanks for your help.
I'll post the kernel side patch to export the necessary symbol
"OFFSET(page.compound_head)" soon.
Thanks,
Atsushi Kumagai