[Makedumpfile Patch 0/6] Fix --mem-usage /proc/kcore

Atsushi Kumagai ats-kumagai at wm.jp.nec.com
Mon Feb 13 00:28:32 PST 2017


>On Monday 13 February 2017 11:56 AM, Atsushi Kumagai wrote:
>> Hello Pratyush,
>>
>>> `makedumpfile --mem-usage /proc/kcore` has been broken after kaslr specific
>>> modifications. I have proposed a kernel patch [0] which has been ACKed by
>>> Andrew Morton and is available in next-2017020 now. Hopefully, it should be
>>> part of upstream in v4.10 release. This kernel patch helps to fix this
>>> issue for both the case of kaslr enabled and disabled.
>>>
>>> To seek other's feedback, I am sending makedumpfile patches before kernel
>>> patch hits upstream.
>>
>> Thanks for taking care of this feature.
>> I understand that the problem is:
>>
>>  - phys_base is necessary for VtoP, but:
>>    - SYMBOL(phys_base) is unavailable since /proc/kcore doesn't export VMCOREINFO.
>>    - get_phys_base() doesn't work well since current PT_LOAD doesn't have valid p_paddr.
>
>Yes, this is what the problem is.
>
>>
>> The new makedumpfile with this patches can show unexpected behavior since it
>> will refer to invalid p_paddr(always 0). Of course, also current makedumpfile cannot
>> work if phys_base isn't 0.
>>
>> If we don't have any way to get phys_base in 1st kernel environment,
>> I think we should disable this feature in older kernel (e.g. by checking kernel version).
>
>Hummm..I had thought that distros with old kernel will backport kernel
>patch and then can use this feature. If we disable it for older kernel,
>then they will not be able to do it.
>
>would it be fine if I cc kernel patch to stable mailing list? It seems
>that patch can be easily applied all older kernel.

Even if there are some "supported" older kernels, there is no guarantee
that all of the kernels provide valid p_paddr. So makedumpfile have to
know whether the target kernel supports --mem-usage or not in older kernel.

Is it possible to add a new stuff into PT_NOTE of /proc/kcore to signify the
kernel supports --mem-usage ? Otherwise, my only idea is --force option for
older kernel, expert user can use it if he is sure that the kernel has valid
p_paddr.


Thanks,
Atsushi Kumagai



More information about the kexec mailing list