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 <[email protected]>
Cc: AKASHI Takahiro <[email protected]>
Cc: Prabhakar Kushwaha <[email protected]>
Cc: [email protected]
Signed-off-by: Bhupesh Sharma <[email protected]>
---
 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
[email protected]
https://www.redhat.com/mailman/listinfo/crash-utility

Reply via email to