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.
Regards,
-- Joe