[Crash-utility] [PATCH] crash/arm64: Determine vabits_actual value from 'TCR_EL1.T1SZ' value in vmcoreinfo
Dave Anderson
anderson at redhat.com
Tue Nov 19 15:24:22 UTC 2019
----- Original Message -----
> I have recently sent a kernel patch upstream to add 'TCR_EL1.T1SZ' to
> vmcoreinfo for arm64 (see [0]), instead of VA_BITS_ACTUAL.
>
> 'crash' can read the 'TCR_EL1.T1SZ' value from vmcoreinfo
> [which indicates the size offset of the memory region addressed by
> TTBR1_EL1] and hence can be used for determining the vabits_actual
> value.
Thanks Bhupesh -- your patch has been queued for crash-7.2.8:
https://github.com/crash-utility/crash/commit/bfd9a651f9426d86250295ac875d7e33d8de2a97
Dave
>
> [0].http://lists.infradead.org/pipermail/kexec/2019-November/023962.html
>
> Cc: Dave Anderson <anderson at redhat.com>
> Cc: AKASHI Takahiro <takahiro.akashi at linaro.org>
> Cc: Prabhakar Kushwaha <prabhakar.pkin at gmail.com>
> Cc: crash-utility at redhat.com
> Signed-off-by: Bhupesh Sharma <bhsharma at redhat.com>
> ---
> arm64.c | 13 +++++++++++--
> 1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/arm64.c b/arm64.c
> index af7147d24e20..083491331985 100644
> --- a/arm64.c
> +++ b/arm64.c
> @@ -3856,8 +3856,17 @@ arm64_calc_VA_BITS(void)
> } else if (ACTIVE())
> error(FATAL, "cannot determine VA_BITS_ACTUAL: please use
> /proc/kcore\n");
> else {
> - if ((string = pc->read_vmcoreinfo("NUMBER(VA_BITS_ACTUAL)"))) {
> - value = atol(string);
> + if ((string = pc->read_vmcoreinfo("NUMBER(tcr_el1_t1sz)"))) {
> + /* See ARMv8 ARM for the description of
> + * TCR_EL1.T1SZ and how it can be used
> + * to calculate the vabits_actual
> + * supported by underlying kernel.
> + *
> + * Basically:
> + * vabits_actual = 64 - T1SZ;
> + */
> + value = 64 - strtoll(string, NULL, 0);
> + fprintf(fp, "vmcoreinfo : vabits_actual: %ld\n", value);
> free(string);
> machdep->machspec->VA_BITS_ACTUAL = value;
> machdep->machspec->VA_BITS = value;
> --
> 2.7.4
>
>
More information about the Crash-utility
mailing list