All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] scripts:gdb: Add few structs in gdb scripts
@ 2020-08-18  4:04 Ritesh Harjani
  2020-08-18  4:04 ` [PATCH 1/2] proc: Add struct mount & struct super_block addr in lx-mounts command Ritesh Harjani
  2020-08-18  4:04 ` [PATCH 2/2] tasks: Add task_struct addr for lx-ps cmd Ritesh Harjani
  0 siblings, 2 replies; 7+ messages in thread
From: Ritesh Harjani @ 2020-08-18  4:04 UTC (permalink / raw)
  To: Jan Kiszka, Kieran Bingham; +Cc: linux-kernel, Ritesh Harjani

I was using these structs info internally in my gdb scripts.
So sending it out for merge to upstream.

Ritesh Harjani (2):
  proc: Add struct mount & struct super_block addr in lx-mounts command
  tasks: Add task_struct addr for lx-ps cmd

 scripts/gdb/linux/lists.py | 43 ++++++++++++++++++++++++++++++++++++++
 scripts/gdb/linux/proc.py  | 15 +++++++------
 scripts/gdb/linux/tasks.py |  9 ++++----
 3 files changed, 12 insertions(+), 12 deletions(-)

-- 
2.25.4


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] proc: Add struct mount & struct super_block addr in lx-mounts command
  2020-08-18  4:04 [PATCH 0/2] scripts:gdb: Add few structs in gdb scripts Ritesh Harjani
@ 2020-08-18  4:04 ` Ritesh Harjani
  2020-08-18  5:37   ` Jan Kiszka
  2020-08-18  4:04 ` [PATCH 2/2] tasks: Add task_struct addr for lx-ps cmd Ritesh Harjani
  1 sibling, 1 reply; 7+ messages in thread
From: Ritesh Harjani @ 2020-08-18  4:04 UTC (permalink / raw)
  To: Jan Kiszka, Kieran Bingham; +Cc: linux-kernel, Ritesh Harjani

This is many times found useful while debugging some FS related issue.

<e.g. output>
      mount          super_block      fstype devname pathname options
0xffff888a0bfa4b40 0xffff888a0bfc1000 rootfs none / rw   0 0
0xffff888a02c065c0 0xffff8889fcf65000 ext4 /dev/root / rw  ,relatime 0 0
0xffff8889fc8cc040 0xffff888a0bb51000 devtmpfs devtmpfs /dev rw  ,relatime 0 0

Signed-off-by: Ritesh Harjani <riteshh@linux.ibm.com>
---
 scripts/gdb/linux/proc.py | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/scripts/gdb/linux/proc.py b/scripts/gdb/linux/proc.py
index 6a56bba233a9..c16fab981bdd 100644
--- a/scripts/gdb/linux/proc.py
+++ b/scripts/gdb/linux/proc.py
@@ -167,6 +167,9 @@ values of that process namespace"""
         if not namespace:
             raise gdb.GdbError("No namespace for current process")
 
+        gdb.write("{:^18} {:^15} {:>9} {} {} options\n".format(
+                  "mount", "super_block", "fstype", "devname", "pathname"))
+
         for vfs in lists.list_for_each_entry(namespace['list'],
                                              mount_ptr_type, "mnt_list"):
             devname = vfs['mnt_devname'].string()
@@ -190,14 +193,10 @@ values of that process namespace"""
             m_flags = int(vfs['mnt']['mnt_flags'])
             rd = "ro" if (s_flags & constants.LX_SB_RDONLY) else "rw"
 
-            gdb.write(
-                "{} {} {} {}{}{} 0 0\n"
-                .format(devname,
-                        pathname,
-                        fstype,
-                        rd,
-                        info_opts(FS_INFO, s_flags),
-                        info_opts(MNT_INFO, m_flags)))
+            gdb.write("{} {} {} {} {} {} {} {} 0 0\n".format(
+                      vfs.format_string(), superblock.format_string(), fstype,
+                      devname, pathname, rd, info_opts(FS_INFO, s_flags),
+                      info_opts(MNT_INFO, m_flags)))
 
 
 LxMounts()
-- 
2.25.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] tasks: Add task_struct addr for lx-ps cmd
  2020-08-18  4:04 [PATCH 0/2] scripts:gdb: Add few structs in gdb scripts Ritesh Harjani
  2020-08-18  4:04 ` [PATCH 1/2] proc: Add struct mount & struct super_block addr in lx-mounts command Ritesh Harjani
@ 2020-08-18  4:04 ` Ritesh Harjani
  2020-08-18  5:40   ` Jan Kiszka
  1 sibling, 1 reply; 7+ messages in thread
From: Ritesh Harjani @ 2020-08-18  4:04 UTC (permalink / raw)
  To: Jan Kiszka, Kieran Bingham; +Cc: linux-kernel, Ritesh Harjani

task_struct addr in lx-ps cmd seems helpful

<e.g. o/p>
      TASK          PID    COMM
0xffffffff82c2b8c0   0   swapper/0
0xffff888a0ba20040   1   systemd
0xffff888a0ba24040   2   kthreadd
0xffff888a0ba28040   3   rcu_gp

Signed-off-by: Ritesh Harjani <riteshh@linux.ibm.com>
---
 scripts/gdb/linux/tasks.py | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/scripts/gdb/linux/tasks.py b/scripts/gdb/linux/tasks.py
index 0301dc1e0138..17ec19e9b5bf 100644
--- a/scripts/gdb/linux/tasks.py
+++ b/scripts/gdb/linux/tasks.py
@@ -73,11 +73,12 @@ class LxPs(gdb.Command):
         super(LxPs, self).__init__("lx-ps", gdb.COMMAND_DATA)
 
     def invoke(self, arg, from_tty):
+        gdb.write("{:>10} {:>12} {:>7}\n".format("TASK", "PID", "COMM"))
         for task in task_lists():
-            gdb.write("{address} {pid} {comm}\n".format(
-                address=task,
-                pid=task["pid"],
-                comm=task["comm"].string()))
+            gdb.write("{} {:^5} {}\n".format(
+                task.format_string().split()[0],
+                task["pid"].format_string(),
+                task["comm"].string()))
 
 
 LxPs()
-- 
2.25.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] proc: Add struct mount & struct super_block addr in lx-mounts command
  2020-08-18  4:04 ` [PATCH 1/2] proc: Add struct mount & struct super_block addr in lx-mounts command Ritesh Harjani
@ 2020-08-18  5:37   ` Jan Kiszka
  2020-08-18  7:27     ` Ritesh Harjani
  0 siblings, 1 reply; 7+ messages in thread
From: Jan Kiszka @ 2020-08-18  5:37 UTC (permalink / raw)
  To: Ritesh Harjani, Kieran Bingham; +Cc: linux-kernel

On 18.08.20 06:04, Ritesh Harjani wrote:
> This is many times found useful while debugging some FS related issue.
> 
> <e.g. output>
>       mount          super_block      fstype devname pathname options
> 0xffff888a0bfa4b40 0xffff888a0bfc1000 rootfs none / rw   0 0
> 0xffff888a02c065c0 0xffff8889fcf65000 ext4 /dev/root / rw  ,relatime 0 0
> 0xffff8889fc8cc040 0xffff888a0bb51000 devtmpfs devtmpfs /dev rw  ,relatime 0 0
> 
> Signed-off-by: Ritesh Harjani <riteshh@linux.ibm.com>
> ---
>  scripts/gdb/linux/proc.py | 15 +++++++--------
>  1 file changed, 7 insertions(+), 8 deletions(-)
> 
> diff --git a/scripts/gdb/linux/proc.py b/scripts/gdb/linux/proc.py
> index 6a56bba233a9..c16fab981bdd 100644
> --- a/scripts/gdb/linux/proc.py
> +++ b/scripts/gdb/linux/proc.py
> @@ -167,6 +167,9 @@ values of that process namespace"""
>          if not namespace:
>              raise gdb.GdbError("No namespace for current process")
>  
> +        gdb.write("{:^18} {:^15} {:>9} {} {} options\n".format(
> +                  "mount", "super_block", "fstype", "devname", "pathname"))
> +
>          for vfs in lists.list_for_each_entry(namespace['list'],
>                                               mount_ptr_type, "mnt_list"):
>              devname = vfs['mnt_devname'].string()
> @@ -190,14 +193,10 @@ values of that process namespace"""
>              m_flags = int(vfs['mnt']['mnt_flags'])
>              rd = "ro" if (s_flags & constants.LX_SB_RDONLY) else "rw"
>  
> -            gdb.write(
> -                "{} {} {} {}{}{} 0 0\n"
> -                .format(devname,
> -                        pathname,
> -                        fstype,
> -                        rd,
> -                        info_opts(FS_INFO, s_flags),
> -                        info_opts(MNT_INFO, m_flags)))
> +            gdb.write("{} {} {} {} {} {} {} {} 0 0\n".format(
> +                      vfs.format_string(), superblock.format_string(), fstype,
> +                      devname, pathname, rd, info_opts(FS_INFO, s_flags),
> +                      info_opts(MNT_INFO, m_flags)))

The last three format elements should not be space-separated. The effect
can even be seen in your example above.

Jan

>  
>  
>  LxMounts()
> 

-- 
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] tasks: Add task_struct addr for lx-ps cmd
  2020-08-18  4:04 ` [PATCH 2/2] tasks: Add task_struct addr for lx-ps cmd Ritesh Harjani
@ 2020-08-18  5:40   ` Jan Kiszka
  2020-08-18  8:55     ` Ritesh Harjani
  0 siblings, 1 reply; 7+ messages in thread
From: Jan Kiszka @ 2020-08-18  5:40 UTC (permalink / raw)
  To: Ritesh Harjani, Kieran Bingham; +Cc: linux-kernel

On 18.08.20 06:04, Ritesh Harjani wrote:
> task_struct addr in lx-ps cmd seems helpful
> 
> <e.g. o/p>
>       TASK          PID    COMM
> 0xffffffff82c2b8c0   0   swapper/0
> 0xffff888a0ba20040   1   systemd
> 0xffff888a0ba24040   2   kthreadd
> 0xffff888a0ba28040   3   rcu_gp
> 
> Signed-off-by: Ritesh Harjani <riteshh@linux.ibm.com>
> ---
>  scripts/gdb/linux/tasks.py | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/scripts/gdb/linux/tasks.py b/scripts/gdb/linux/tasks.py
> index 0301dc1e0138..17ec19e9b5bf 100644
> --- a/scripts/gdb/linux/tasks.py
> +++ b/scripts/gdb/linux/tasks.py
> @@ -73,11 +73,12 @@ class LxPs(gdb.Command):
>          super(LxPs, self).__init__("lx-ps", gdb.COMMAND_DATA)
>  
>      def invoke(self, arg, from_tty):
> +        gdb.write("{:>10} {:>12} {:>7}\n".format("TASK", "PID", "COMM"))
>          for task in task_lists():
> -            gdb.write("{address} {pid} {comm}\n".format(
> -                address=task,
> -                pid=task["pid"],
> -                comm=task["comm"].string()))
> +            gdb.write("{} {:^5} {}\n".format(
> +                task.format_string().split()[0],
> +                task["pid"].format_string(),
> +                task["comm"].string()))
>  
>  
>  LxPs()
> 

This patch is confusing me. We already dump the task address. What the
patch changes is adding a header and some conversions of the values. Can
you elaborate?

Jan

-- 
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] proc: Add struct mount & struct super_block addr in lx-mounts command
  2020-08-18  5:37   ` Jan Kiszka
@ 2020-08-18  7:27     ` Ritesh Harjani
  0 siblings, 0 replies; 7+ messages in thread
From: Ritesh Harjani @ 2020-08-18  7:27 UTC (permalink / raw)
  To: Jan Kiszka, Kieran Bingham; +Cc: linux-kernel



On 8/18/20 11:07 AM, Jan Kiszka wrote:
> On 18.08.20 06:04, Ritesh Harjani wrote:
>> This is many times found useful while debugging some FS related issue.
>>
>> <e.g. output>
>>        mount          super_block      fstype devname pathname options
>> 0xffff888a0bfa4b40 0xffff888a0bfc1000 rootfs none / rw   0 0
>> 0xffff888a02c065c0 0xffff8889fcf65000 ext4 /dev/root / rw  ,relatime 0 0
>> 0xffff8889fc8cc040 0xffff888a0bb51000 devtmpfs devtmpfs /dev rw  ,relatime 0 0
>>
>> Signed-off-by: Ritesh Harjani <riteshh@linux.ibm.com>
>> ---
>>   scripts/gdb/linux/proc.py | 15 +++++++--------
>>   1 file changed, 7 insertions(+), 8 deletions(-)
>>
>> diff --git a/scripts/gdb/linux/proc.py b/scripts/gdb/linux/proc.py
>> index 6a56bba233a9..c16fab981bdd 100644
>> --- a/scripts/gdb/linux/proc.py
>> +++ b/scripts/gdb/linux/proc.py
>> @@ -167,6 +167,9 @@ values of that process namespace"""
>>           if not namespace:
>>               raise gdb.GdbError("No namespace for current process")
>>   
>> +        gdb.write("{:^18} {:^15} {:>9} {} {} options\n".format(
>> +                  "mount", "super_block", "fstype", "devname", "pathname"))
>> +
>>           for vfs in lists.list_for_each_entry(namespace['list'],
>>                                                mount_ptr_type, "mnt_list"):
>>               devname = vfs['mnt_devname'].string()
>> @@ -190,14 +193,10 @@ values of that process namespace"""
>>               m_flags = int(vfs['mnt']['mnt_flags'])
>>               rd = "ro" if (s_flags & constants.LX_SB_RDONLY) else "rw"
>>   
>> -            gdb.write(
>> -                "{} {} {} {}{}{} 0 0\n"
>> -                .format(devname,
>> -                        pathname,
>> -                        fstype,
>> -                        rd,
>> -                        info_opts(FS_INFO, s_flags),
>> -                        info_opts(MNT_INFO, m_flags)))
>> +            gdb.write("{} {} {} {} {} {} {} {} 0 0\n".format(
>> +                      vfs.format_string(), superblock.format_string(), fstype,
>> +                      devname, pathname, rd, info_opts(FS_INFO, s_flags),
>> +                      info_opts(MNT_INFO, m_flags)))
> 
> The last three format elements should not be space-separated. The effect
> can even be seen in your example above.

yes, agreed. Will fix it in next version.

-ritesh

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/2] tasks: Add task_struct addr for lx-ps cmd
  2020-08-18  5:40   ` Jan Kiszka
@ 2020-08-18  8:55     ` Ritesh Harjani
  0 siblings, 0 replies; 7+ messages in thread
From: Ritesh Harjani @ 2020-08-18  8:55 UTC (permalink / raw)
  To: Jan Kiszka, Kieran Bingham; +Cc: linux-kernel



On 8/18/20 11:10 AM, Jan Kiszka wrote:
> On 18.08.20 06:04, Ritesh Harjani wrote:
>> task_struct addr in lx-ps cmd seems helpful
>>
>> <e.g. o/p>
>>        TASK          PID    COMM
>> 0xffffffff82c2b8c0   0   swapper/0
>> 0xffff888a0ba20040   1   systemd
>> 0xffff888a0ba24040   2   kthreadd
>> 0xffff888a0ba28040   3   rcu_gp
>>
>> Signed-off-by: Ritesh Harjani <riteshh@linux.ibm.com>
>> ---
>>   scripts/gdb/linux/tasks.py | 9 +++++----
>>   1 file changed, 5 insertions(+), 4 deletions(-)
>>
>> diff --git a/scripts/gdb/linux/tasks.py b/scripts/gdb/linux/tasks.py
>> index 0301dc1e0138..17ec19e9b5bf 100644
>> --- a/scripts/gdb/linux/tasks.py
>> +++ b/scripts/gdb/linux/tasks.py
>> @@ -73,11 +73,12 @@ class LxPs(gdb.Command):
>>           super(LxPs, self).__init__("lx-ps", gdb.COMMAND_DATA)
>>   
>>       def invoke(self, arg, from_tty):
>> +        gdb.write("{:>10} {:>12} {:>7}\n".format("TASK", "PID", "COMM"))
>>           for task in task_lists():
>> -            gdb.write("{address} {pid} {comm}\n".format(
>> -                address=task,
>> -                pid=task["pid"],
>> -                comm=task["comm"].string()))
>> +            gdb.write("{} {:^5} {}\n".format(
>> +                task.format_string().split()[0],
>> +                task["pid"].format_string(),
>> +                task["comm"].string()))
>>   
>>   
>>   LxPs()
>>
> 
> This patch is confusing me. We already dump the task address. What the
> patch changes is adding a header and some conversions of the values. Can
> you elaborate?

You are right. Sorry for the confusion. I will update the commit msg (in
v2) to reflect that this patch adds the header and formats the spacing.
Without the patch we get it like this:-

0xffffffff82c2b8c0 <init_task> 0 swapper/0
0xffff888a0ba20040 1 systemd
0xffff888a0ba24040 2 kthreadd
0xffff888a0ba28040 3 rcu_gp

-ritesh

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-08-18  8:55 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-18  4:04 [PATCH 0/2] scripts:gdb: Add few structs in gdb scripts Ritesh Harjani
2020-08-18  4:04 ` [PATCH 1/2] proc: Add struct mount & struct super_block addr in lx-mounts command Ritesh Harjani
2020-08-18  5:37   ` Jan Kiszka
2020-08-18  7:27     ` Ritesh Harjani
2020-08-18  4:04 ` [PATCH 2/2] tasks: Add task_struct addr for lx-ps cmd Ritesh Harjani
2020-08-18  5:40   ` Jan Kiszka
2020-08-18  8:55     ` Ritesh Harjani

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.