[Makedumpfile PATCH] book3s/ppc64: Lower the max real address to 53 bits for kernels >= v4.11

Bhupesh Sharma bhsharma at redhat.com
Tue Sep 12 12:56:37 PDT 2017


Hi Hari,

On Mon, Sep 11, 2017 at 2:29 PM, Hari Bathini
<hbathini at linux.vnet.ibm.com> wrote:
>
> On Monday 11 September 2017 07:05 AM, Dave Young wrote:
>>
>> Cc more people.
>>
>> On 09/08/17 at 10:10am, Bhupesh Sharma wrote:
>>>
>>> Kernel commit 2f18d533757da3899f4bedab0b2c051b080079dc lowered the
>>> max real address on ppc64 to 53 bits.
>>>
>>> Make similar changes in makedumpfile (on basis of the underlying kernel
>>> version), without which the makedumpfile will fail to create a dumpfile
>>> and instead throw a SEGV fault as shown below on kernels >= v4.11:
>>>
>>>   # makedumpfile --split -d 31 -x vmlinux vmcore dumpfile_{1,2,3} 2>&1
>>>
>>>   The kernel version is not supported.
>>>   The makedumpfile operation may be incomplete.
>>>   [ 1196.252094] makedumpfile[2367]: unhandled signal 11 at
>>>   00000100f7011ca8 nip 000000001001eecc lr 000000001001f3c0 code 30001
>>>   Segmentation fault
>
>
> I have not hit the above problem, but for the sake of correctness,
> this patch is needed for >= 4.11.0 kernels. So..
>
> Acked-by: Hari Bathini <hbathini at linux.vnet.ibm.com>

Thanks for the review.  As Atsushi suggested some changes in v1, I am
sharing a v2 version shortly.

Kindly review the same as well.

Regards,
Bhupesh

>>> Signed-off-by: Bhupesh Sharma <bhsharma at redhat.com>
>>> ---
>>>   makedumpfile.h | 5 +++--
>>>   1 file changed, 3 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/makedumpfile.h b/makedumpfile.h
>>> index 7d81bbcf2234..142753d84e8d 100644
>>> --- a/makedumpfile.h
>>> +++ b/makedumpfile.h
>>> @@ -684,8 +684,9 @@ unsigned long get_kvbase_arm64(void);
>>>   #define PMD_MASKED_BITS_64K_4_6  0xc0000000000000ffUL
>>>     #define PTE_RPN_MASK_DEFAULT  0xffffffffffffffffUL
>>> -#define PTE_RPN_SIZE_L4_4_6   (info->page_size == 65536 ? 41 : 45)
>>> -#define PTE_RPN_MASK_L4_4_6   (((1UL << PTE_RPN_SIZE_L4_4_6) - 1) <<
>>> info->page_shift)
>>> +#define PAGE_PA_MAX_L4_4_6    (info->kernel_version >=
>>> KERNEL_VERSION(4,11,0) ? 53 : 57)
>>> +#define PTE_RPN_MASK_L4_4_6   \
>>> +       (((1UL << PAGE_PA_MAX_L4_4_6) - 1) & ~((1UL << info->page_shift)
>>> - 1))
>>>   #define PTE_RPN_SHIFT_L4_4_6  info->page_shift
>>>     #define PGD_MASKED_BITS_4_7  0xc0000000000000ffUL
>>> --
>>> 2.7.4
>>>
>



More information about the kexec mailing list