Re: [PATCH] arm64: handle vabits_actual symbol missing case

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2022/12/08 13:25, Pavankumar Kondeti wrote:
> After the commit 0d9b1ffefabe ("arm64: mm: make vabits_actual
> a build time constant if possible") introduced in v5.19
> Linux kernel, the crash will not find vabits_actual symbol
> if if VA_BITS <= 48. Add a fallback option to initialize VA_BITS
> based on the user supplied machdep option.
> 
> Tested ramdumps loading in both 6.0 and 5.15 kernels.
> 
> Signed-off-by: Pavankumar Kondeti <quic_pkondeti@xxxxxxxxxxx>

This looks good to me.

Acked-by: Kazuhito Hagio <k-hagio-ab@xxxxxxx>


This is a memo about vabits_actual for future reference...

if VA_BITS <= 48:
ramdump (no vmcoreinfo)
         ver < 5.4  ... use old calculation
5.4  <= ver < 5.19 ... require "-m vabits_actual=N"
5.19 <= ver        ... require "-m vabits_actual=N" <-- this patch adds

vmcore (with vmcoreinfo)
         ver < 5.4  ... use old calculation
5.4  <= ver < 5.9  ... guess from NUMBER(VA_BITS) or "-m vabits_actual"
5.9  <= ver        ... use NUMBER(TCR_EL1_T1SZ)

/proc/kcore
         ver < 5.4  ... use old calculation
5.4  <= ver < 5.19 ... read vabits_actual
5.19 <= ver        ... use NUMBER(TCR_EL1_T1SZ)

# maybe bugs here :)

Thanks,
Kazu

> ---
>   arm64.c | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/arm64.c b/arm64.c
> index c3e26a3..7125458 100644
> --- a/arm64.c
> +++ b/arm64.c
> @@ -4671,6 +4671,10 @@ arm64_calc_VA_BITS(void)
>   		return;
>   	} else if (arm64_set_va_bits_by_tcr()) {
>   		return;
> +	} else if (machdep->machspec->VA_BITS_ACTUAL) {
> +		machdep->machspec->VA_BITS = machdep->machspec->VA_BITS_ACTUAL;
> +		machdep->machspec->VA_START = _VA_START(machdep->machspec->VA_BITS_ACTUAL);
> +		return;
>   	}
>   
>   	if (!(sp = symbol_search("swapper_pg_dir")) &&
--
Crash-utility mailing list
Crash-utility@xxxxxxxxxx
https://listman.redhat.com/mailman/listinfo/crash-utility
Contribution Guidelines: https://github.com/crash-utility/crash/wiki




[Index of Archives]     [Fedora Development]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]

 

Powered by Linux