Re: [PATCH v2 1/5] scripts/gdb: fix timerlist parsing issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jul 22, 2024 at 05:17:42PM +0800, Kuan-Ying Lee wrote:

Sorry for the bothering.

I mistakenly sent to the wrong mailing list.

Please ignore this patchset.
> Commit 7988e5ae2be7 ("tick: Split nohz and highres features from
> nohz_mode") and commit 7988e5ae2be7 ("tick: Split nohz and
> highres features from nohz_mode") move 'tick_stopped' and 'nohz_mode'
> to flags field which will break the gdb lx-mounts command:
> 
> (gdb) lx-timerlist
> Python Exception <class 'gdb.error'>: There is no member named nohz_mode.
> Error occurred in Python: There is no member named nohz_mode.
> 
> (gdb) lx-timerlist
> Python Exception <class 'gdb.error'>: There is no member named tick_stopped.
> Error occurred in Python: There is no member named tick_stopped.
> 
> We move 'tick_stopped' and 'nohz_mode' to flags field instead.
> 
> Fixes: a478ffb2ae23 ("tick: Move individual bit features to debuggable mask accesses")
> Fixes: 7988e5ae2be7 ("tick: Split nohz and highres features from nohz_mode")
> Cc: <stable@xxxxxxxxxxxxxxx>
> Signed-off-by: Kuan-Ying Lee <kuan-ying.lee@xxxxxxxxxxxxx>
> ---
>  scripts/gdb/linux/timerlist.py | 31 ++++++++++++++++---------------
>  1 file changed, 16 insertions(+), 15 deletions(-)
> 
> diff --git a/scripts/gdb/linux/timerlist.py b/scripts/gdb/linux/timerlist.py
> index 64bc87191003..98445671fe83 100644
> --- a/scripts/gdb/linux/timerlist.py
> +++ b/scripts/gdb/linux/timerlist.py
> @@ -87,21 +87,22 @@ def print_cpu(hrtimer_bases, cpu, max_clock_bases):
>              text += "\n"
>  
>          if constants.LX_CONFIG_TICK_ONESHOT:
> -            fmts = [("  .{}      : {}", 'nohz_mode'),
> -                    ("  .{}      : {} nsecs", 'last_tick'),
> -                    ("  .{}   : {}", 'tick_stopped'),
> -                    ("  .{}   : {}", 'idle_jiffies'),
> -                    ("  .{}     : {}", 'idle_calls'),
> -                    ("  .{}    : {}", 'idle_sleeps'),
> -                    ("  .{} : {} nsecs", 'idle_entrytime'),
> -                    ("  .{}  : {} nsecs", 'idle_waketime'),
> -                    ("  .{}  : {} nsecs", 'idle_exittime'),
> -                    ("  .{} : {} nsecs", 'idle_sleeptime'),
> -                    ("  .{}: {} nsecs", 'iowait_sleeptime'),
> -                    ("  .{}   : {}", 'last_jiffies'),
> -                    ("  .{}     : {}", 'next_timer'),
> -                    ("  .{}   : {} nsecs", 'idle_expires')]
> -            text += "\n".join([s.format(f, ts[f]) for s, f in fmts])
> +            TS_FLAG_STOPPED = 1 << 1
> +            TS_FLAG_NOHZ = 1 << 4
> +            text += f"  .{'nohz':15s}: {int(bool(ts['flags'] & TS_FLAG_NOHZ))}\n"
> +            text += f"  .{'last_tick':15s}: {ts['last_tick']}\n"
> +            text += f"  .{'tick_stopped':15s}: {int(bool(ts['flags'] & TS_FLAG_STOPPED))}\n"
> +            text += f"  .{'idle_jiffies':15s}: {ts['idle_jiffies']}\n"
> +            text += f"  .{'idle_calls':15s}: {ts['idle_calls']}\n"
> +            text += f"  .{'idle_sleeps':15s}: {ts['idle_sleeps']}\n"
> +            text += f"  .{'idle_entrytime':15s}: {ts['idle_entrytime']} nsecs\n"
> +            text += f"  .{'idle_waketime':15s}: {ts['idle_waketime']} nsecs\n"
> +            text += f"  .{'idle_exittime':15s}: {ts['idle_exittime']} nsecs\n"
> +            text += f"  .{'idle_sleeptime':15s}: {ts['idle_sleeptime']} nsecs\n"
> +            text += f"  .{'iowait_sleeptime':15s}: {ts['iowait_sleeptime']} nsecs\n"
> +            text += f"  .{'last_jiffies':15s}: {ts['last_jiffies']}\n"
> +            text += f"  .{'next_timer':15s}: {ts['next_timer']}\n"
> +            text += f"  .{'idle_expires':15s}: {ts['idle_expires']} nsecs\n"
>              text += "\njiffies: {}\n".format(jiffies)
>  
>          text += "\n"
> -- 
> 2.34.1
> 




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux