[Crash-utility] makedumpfile: 4.5 kernel commit breaks page filtering

Atsushi Kumagai ats-kumagai at wm.jp.nec.com
Sun Feb 28 21:56:02 PST 2016


Hello Joe,

>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


More information about the kexec mailing list