Re: [Crash-utility] [PATCH] crash/arm64: Determine vabits_actual value from 'TCR_EL1.T1SZ' value in vmcoreinfo
- 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 > Cc: AKASHI Takahiro > Cc: Prabhakar Kushwaha > Cc: crash-utility@redhat.com > Signed-off-by: Bhupesh Sharma > --- > 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 > > -- Crash-utility mailing list Crash-utility@redhat.com https://www.redhat.com/mailman/listinfo/crash-utility
[Crash-utility] TEST -- please ignore
-- Crash-utility mailing list Crash-utility@redhat.com https://www.redhat.com/mailman/listinfo/crash-utility
[Crash-utility] [PATCH] crash/arm64: Determine vabits_actual value from 'TCR_EL1.T1SZ' value in vmcoreinfo
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. [0].http://lists.infradead.org/pipermail/kexec/2019-November/023962.html Cc: Dave Anderson Cc: AKASHI Takahiro Cc: Prabhakar Kushwaha Cc: crash-utility@redhat.com Signed-off-by: Bhupesh Sharma --- 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 -- Crash-utility mailing list Crash-utility@redhat.com https://www.redhat.com/mailman/listinfo/crash-utility