* [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
* 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 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
* [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 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 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.