----- 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@xxxxxxxxxx> > Cc: AKASHI Takahiro <takahiro.akashi@xxxxxxxxxx> > Cc: Prabhakar Kushwaha <prabhakar.pkin@xxxxxxxxx> > Cc: crash-utility@xxxxxxxxxx > Signed-off-by: Bhupesh Sharma <bhsharma@xxxxxxxxxx> > --- > 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 > > _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec