[PATCH 2/2] scripts/gdb: Update documentation for lx_per_cpu

Mainline
From:Illia Ostapyshyn <illia@yshyn.com>
Date:
Message-ID:<20250503123234.2407184-3-illia@yshyn.com>
Patch:v1 · 2/2
Language:Mixed
Patch-ID:4a538c68570a2b21b98c8d005bec4571287596a7
Files:Documentation/process/debugging/gdb-kernel-debugging.rstDocumentation/translations/zh_CN/dev-tools/gdb-kernel-debugging.rstDocumentation/translations/zh_TW/dev-tools/gdb-kernel-debugging.rstscripts/gdb/linux/cpus.py

Patch content 4 changed files

Commit db08c53fdd542bb7f83b ("scripts/gdb: fix parameter handling in$lx_per_cpu") changed the parameter handling of lx_per_cpu to useGdbValue instead of parsing the variable name.  Update the documentationto reflect the new lx_per_cpu usage.  Update the hrtimer_bases exampleto use rb_tree instead of the timerqueue_head.next pointer removed incommit 511885d7061eda3eb1fa ("lib/timerqueue: Rely on rbtree semanticsfor next timer"). Signed-off-by: Illia Ostapyshyn <illia@yshyn.com>--- .../debugging/gdb-kernel-debugging.rst        | 34 ++++++++----------- .../zh_CN/dev-tools/gdb-kernel-debugging.rst  | 34 ++++++++----------- .../zh_TW/dev-tools/gdb-kernel-debugging.rst  | 34 ++++++++----------- scripts/gdb/linux/cpus.py                     |  4 +-- 4 files changed, 47 insertions(+), 59 deletions(-) diff --git a/Documentation/process/debugging/gdb-kernel-debugging.rst b/Documentation/process/debugging/gdb-kernel-debugging.rstindex 895285c037c7..9475c759c722 100644--- a/Documentation/process/debugging/gdb-kernel-debugging.rst+++ b/Documentation/process/debugging/gdb-kernel-debugging.rst@@ -127,35 +127,31 @@ Examples of using the Linux-provided gdb helpers  - Make use of the per-cpu function for the current or a specified CPU:: -    (gdb) p $lx_per_cpu("runqueues").nr_running+    (gdb) p $lx_per_cpu(runqueues).nr_running     $3 = 1-    (gdb) p $lx_per_cpu("runqueues", 2).nr_running+    (gdb) p $lx_per_cpu(runqueues, 2).nr_running     $4 = 0  - Dig into hrtimers using the container_of helper:: -    (gdb) set $next = $lx_per_cpu("hrtimer_bases").clock_base[0].active.next-    (gdb) p *$container_of($next, "struct hrtimer", "node")+    (gdb) set $leftmost = $lx_per_cpu(hrtimer_bases).clock_base[0].active.rb_root.rb_leftmost+    (gdb) p *$container_of($leftmost, "struct hrtimer", "node")     $5 = {       node = {         node = {-          __rb_parent_color = 18446612133355256072,-          rb_right = 0x0 <irq_stack_union>,-          rb_left = 0x0 <irq_stack_union>+          __rb_parent_color = 18446612686384860673,+          rb_right = 0xffff888231da8b00,+          rb_left = 0x0         },-        expires = {-          tv64 = 1835268000000-        }+        expires = 1228461000000       },-      _softexpires = {-        tv64 = 1835268000000-      },-      function = 0xffffffff81078232 <tick_sched_timer>,-      base = 0xffff88003fd0d6f0,-      state = 1,-      start_pid = 0,-      start_site = 0xffffffff81055c1f <hrtimer_start_range_ns+20>,-      start_comm = "swapper/2\000\000\000\000\000\000"+      _softexpires = 1228461000000,+      function = 0xffffffff8137ab20 <tick_nohz_handler>,+      base = 0xffff888231d9b4c0,+      state = 1 '\001',+      is_rel = 0 '\000',+      is_soft = 0 '\000',+      is_hard = 1 '\001'     }  diff --git a/Documentation/translations/zh_CN/dev-tools/gdb-kernel-debugging.rst b/Documentation/translations/zh_CN/dev-tools/gdb-kernel-debugging.rstindex 3c133a918f30..282aacd33442 100644--- a/Documentation/translations/zh_CN/dev-tools/gdb-kernel-debugging.rst+++ b/Documentation/translations/zh_CN/dev-tools/gdb-kernel-debugging.rst@@ -120,35 +120,31 @@ Kgdb内核调试器、QEMU等虚拟机管理程序或基于JTAG的硬件接口  - 对当前或指定的CPU使用per-cpu函数:: -    (gdb) p $lx_per_cpu("runqueues").nr_running+    (gdb) p $lx_per_cpu(runqueues).nr_running     $3 = 1-    (gdb) p $lx_per_cpu("runqueues", 2).nr_running+    (gdb) p $lx_per_cpu(runqueues, 2).nr_running     $4 = 0  - 使用container_of查看更多hrtimers信息:: -    (gdb) set $next = $lx_per_cpu("hrtimer_bases").clock_base[0].active.next-    (gdb) p *$container_of($next, "struct hrtimer", "node")+    (gdb) set $leftmost = $lx_per_cpu(hrtimer_bases).clock_base[0].active.rb_root.rb_leftmost+    (gdb) p *$container_of($leftmost, "struct hrtimer", "node")     $5 = {       node = {         node = {-          __rb_parent_color = 18446612133355256072,-          rb_right = 0x0 <irq_stack_union>,-          rb_left = 0x0 <irq_stack_union>+          __rb_parent_color = 18446612686384860673,+          rb_right = 0xffff888231da8b00,+          rb_left = 0x0         },-        expires = {-          tv64 = 1835268000000-        }+        expires = 1228461000000       },-      _softexpires = {-        tv64 = 1835268000000-      },-      function = 0xffffffff81078232 <tick_sched_timer>,-      base = 0xffff88003fd0d6f0,-      state = 1,-      start_pid = 0,-      start_site = 0xffffffff81055c1f <hrtimer_start_range_ns+20>,-      start_comm = "swapper/2\000\000\000\000\000\000"+      _softexpires = 1228461000000,+      function = 0xffffffff8137ab20 <tick_nohz_handler>,+      base = 0xffff888231d9b4c0,+      state = 1 '\001',+      is_rel = 0 '\000',+      is_soft = 0 '\000',+      is_hard = 1 '\001'     }  diff --git a/Documentation/translations/zh_TW/dev-tools/gdb-kernel-debugging.rst b/Documentation/translations/zh_TW/dev-tools/gdb-kernel-debugging.rstindex c881e8872b19..b595af59ba78 100644--- a/Documentation/translations/zh_TW/dev-tools/gdb-kernel-debugging.rst+++ b/Documentation/translations/zh_TW/dev-tools/gdb-kernel-debugging.rst@@ -116,35 +116,31 @@ Kgdb內核調試器、QEMU等虛擬機管理程序或基於JTAG的硬件接口  - 對當前或指定的CPU使用per-cpu函數:: -    (gdb) p $lx_per_cpu("runqueues").nr_running+    (gdb) p $lx_per_cpu(runqueues).nr_running     $3 = 1-    (gdb) p $lx_per_cpu("runqueues", 2).nr_running+    (gdb) p $lx_per_cpu(runqueues, 2).nr_running     $4 = 0  - 使用container_of查看更多hrtimers信息:: -    (gdb) set $next = $lx_per_cpu("hrtimer_bases").clock_base[0].active.next-    (gdb) p *$container_of($next, "struct hrtimer", "node")+    (gdb) set $leftmost = $lx_per_cpu(hrtimer_bases).clock_base[0].active.rb_root.rb_leftmost+    (gdb) p *$container_of($leftmost, "struct hrtimer", "node")     $5 = {       node = {         node = {-          __rb_parent_color = 18446612133355256072,-          rb_right = 0x0 <irq_stack_union>,-          rb_left = 0x0 <irq_stack_union>+          __rb_parent_color = 18446612686384860673,+          rb_right = 0xffff888231da8b00,+          rb_left = 0x0         },-        expires = {-          tv64 = 1835268000000-        }+        expires = 1228461000000       },-      _softexpires = {-        tv64 = 1835268000000-      },-      function = 0xffffffff81078232 <tick_sched_timer>,-      base = 0xffff88003fd0d6f0,-      state = 1,-      start_pid = 0,-      start_site = 0xffffffff81055c1f <hrtimer_start_range_ns+20>,-      start_comm = "swapper/2\000\000\000\000\000\000"+      _softexpires = 1228461000000,+      function = 0xffffffff8137ab20 <tick_nohz_handler>,+      base = 0xffff888231d9b4c0,+      state = 1 '\001',+      is_rel = 0 '\000',+      is_soft = 0 '\000',+      is_hard = 1 '\001'     }  diff --git a/scripts/gdb/linux/cpus.py b/scripts/gdb/linux/cpus.pyindex f506965ea759..6edf4ef61636 100644--- a/scripts/gdb/linux/cpus.py+++ b/scripts/gdb/linux/cpus.py@@ -141,7 +141,7 @@ LxCpus() class PerCpu(gdb.Function):     """Return per-cpu variable. -$lx_per_cpu("VAR"[, CPU]): Return the per-cpu variable called VAR for the+$lx_per_cpu(VAR[, CPU]): Return the per-cpu variable called VAR for the given CPU number. If CPU is omitted, the CPU of the current context is used. Note that VAR has to be quoted as string.""" @@ -158,7 +158,7 @@ PerCpu() class PerCpuPtr(gdb.Function):     """Return per-cpu pointer. -$lx_per_cpu_ptr("VAR"[, CPU]): Return the per-cpu pointer called VAR for the+$lx_per_cpu_ptr(VAR[, CPU]): Return the per-cpu pointer called VAR for the given CPU number. If CPU is omitted, the CPU of the current context is used. Note that VAR has to be quoted as string.""" -- 2.47.2