* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).