Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

scripts/gdb: set vabits_actual based on TCR_EL1

We encounter the following issue after commit 9cce9c6c2c3b ("arm64: mm: Handle
LVA support as a CPU feature").

(gdb) lx-slabinfo
Python Exception <class 'gdb.error'>: No symbol "vabits_actual" in current context.
Error occurred in Python: No symbol "vabits_actual" in current context.

We set vabits_actual based on TCR_EL1 value when
VA_BITS is bigger than 48.

Link: https://lkml.kernel.org/r/20240619074911.100434-5-kuan-ying.lee@canonical.com
Fixes: 9cce9c6c2c3b ("arm64: mm: Handle LVA support as a CPU feature")
Signed-off-by: Kuan-Ying Lee <kuan-ying.lee@canonical.com>
Cc: Jan Kiszka <jan.kiszka@siemens.com>
Cc: Kieran Bingham <kbingham@kernel.org>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Kuan-Ying Lee and committed by
Andrew Morton
04a40bae 3c0e9a20

+3 -1
+3 -1
scripts/gdb/linux/mm.py
··· 48 48 self.VA_BITS = constants.LX_CONFIG_ARM64_VA_BITS 49 49 if self.VA_BITS > 48: 50 50 self.VA_BITS_MIN = 48 51 - self.vabits_actual = gdb.parse_and_eval('vabits_actual') 51 + tcr_el1 = gdb.execute("info registers $TCR_EL1", to_string=True) 52 + tcr_el1 = int(tcr_el1.split()[1], 16) 53 + self.vabits_actual = 64 - ((tcr_el1 >> 16) & 63) 52 54 else: 53 55 self.VA_BITS_MIN = self.VA_BITS 54 56 self.vabits_actual = self.VA_BITS