mirror_ubuntu-kernels/scripts/gdb/linux
Florian Rommel 40eea5abbb scripts/gdb: fix detection of current CPU in KGDB
Directly read the current CPU number from the kgdb_active variable.

Before, the active CPU was obtained through the current task, which
required searching the task list for the pid of GDB's selected thread. 
Obtaining the pid was buggy: GDB may use selected_thread().ptid[1] (LWPID)
instead of .ptid[2] (TID) to store the threads pid; see
https://sourceware.org/gdb/current/onlinedocs/gdb.html/Threads-In-Python.html
As a result, the detection could return the wrong CPU number, leading to
incorrect results for $lx_per_cpu and $lx_current.

As a side effect, the patch significantly speeds up $lx_per_cpu and
$lx_current in KGDB by avoiding the task-list iteration.

Link: https://lkml.kernel.org/r/20240425153501.749966-5-mail@florommel.de
Signed-off-by: Florian Rommel <mail@florommel.de>
Cc: Andrew Jones <ajones@ventanamicro.com>
Cc: Deepak Gupta <debug@rivosinc.com>
Cc: Jan Kiszka <jan.kiszka@siemens.com>
Cc: Kieran Bingham <kbingham@kernel.org>
Cc: Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>
Cc: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-05-08 08:41:28 -07:00
..
__init__.py scripts/gdb: add empty package initialization script 2015-02-28 09:57:51 -08:00
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
clk.py scripts/gdb: bail early if there are no clocks 2023-04-08 13:45:38 -07:00
config.py scripts/gdb: change kernel config dumping method 2022-06-11 18:31:53 +09:00
constants.py.in S390: 2024-03-15 13:03:13 -07:00
cpus.py scripts/gdb: fix detection of current CPU in KGDB 2024-05-08 08:41:28 -07:00
device.py scripts/gdb: fix lx-device-list-bus and lx-device-list-class 2023-12-06 16:12:49 -08:00
dmesg.py scripts/gdb: fix 'lx-dmesg' on 32 bits arch 2022-07-21 15:32:52 +02:00
genpd.py scripts/gdb: bail early if there are no generic PD 2023-04-08 13:45:38 -07:00
interrupts.py x86: replace CONFIG_HAVE_KVM with IS_ENABLED(CONFIG_KVM) 2024-02-08 08:45:35 -05:00
lists.py scripts/gdb: fix list_for_each 2021-02-26 09:41:05 -08:00
Makefile kbuild: use always-y instead of extra-y 2021-02-16 12:01:45 +09:00
mm.py arch: simplify architecture specific page size configuration 2024-03-06 19:29:03 +01:00
modules.py scripts/gdb/modules: add get module text support 2023-08-21 13:46:22 -07:00
page_owner.py scripts/gdb: remove exception handling and refine print format 2023-12-10 17:21:49 -08:00
pgtable.py scripts/gdb/aarch64: add aarch64 page operation helper commands and configs 2023-08-21 13:46:22 -07:00
proc.py scripts/gdb: create linux/vfs.py for VFS related GDB helpers 2023-04-18 16:39:34 -07:00
radixtree.py scripts/gdb: add a Radix Tree Parser 2023-04-18 16:39:33 -07:00
rbtree.py scripts/gdb: fix python 3.8 SyntaxWarning 2020-08-12 10:58:02 -07:00
slab.py scripts/gdb: remove exception handling and refine print format 2023-12-10 17:21:49 -08:00
stackdepot.py scripts/gdb/stackdepot: rename pool_index to pools_num 2023-12-10 17:21:48 -08:00
symbols.py scripts/gdb/symbols: fix invalid escape sequence warning 2024-03-07 16:14:19 -08:00
tasks.py scripts/gdb: make get_thread_info accept pointers 2024-05-08 08:41:28 -07:00
timerlist.py scripts/gdb: timerlist: convert int chunks to str 2023-04-18 16:39:34 -07:00
utils.py scripts/gdb: fix failing KGDB detection during probe 2024-05-08 08:41:27 -07:00
vfs.py scripts/gdb: add GDB convenience functions $lx_dentry_name() and $lx_i_dentry() 2023-04-18 16:39:35 -07:00
vmalloc.py scripts/gdb/vmalloc: fix vmallocinfo error 2024-02-21 16:00:02 -08:00