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

Pratyush Anand panand at redhat.com
Mon Feb 13 20:43:34 PST 2017



On Monday 13 February 2017 01:58 PM, Atsushi Kumagai wrote:
>> 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.
>

I think, we can go with --force. I will send next revision after kernel  
patch hits Linus's tree.


Thanks for your review.

~Pratyush



More information about the kexec mailing list