2015-05-20 14:42:22

by Adrien Schildknecht

[permalink] [raw]
Subject: [PATCH] scripts/gdb: fix lx-lsmod refcnt

Commit 2f35c41f58a9 ("module: Replace module_ref with atomic_t refcnt")
changes the way refcnt is handled but did not update the gdb script to use
the new variable.

Since refcnt is not per-cpu anymore, we can directly read its value.

Signed-off-by: Adrien Schildknecht <[email protected]>
---
scripts/gdb/linux/modules.py | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/scripts/gdb/linux/modules.py b/scripts/gdb/linux/modules.py
index a1504c4..25db8cf 100644
--- a/scripts/gdb/linux/modules.py
+++ b/scripts/gdb/linux/modules.py
@@ -73,18 +73,11 @@ class LxLsmod(gdb.Command):
" " if utils.get_long_type().sizeof == 8 else ""))

for module in module_list():
- ref = 0
- module_refptr = module['refptr']
- for cpu in cpus.cpu_list("cpu_possible_mask"):
- refptr = cpus.per_cpu(module_refptr, cpu)
- ref += refptr['incs']
- ref -= refptr['decs']
-
gdb.write("{address} {name:<19} {size:>8} {ref}".format(
address=str(module['module_core']).split()[0],
name=module['name'].string(),
size=str(module['core_size']),
- ref=str(ref)))
+ ref=str(module['refcnt']['counter'])))

source_list = module['source_list']
t = self._module_use_type.get_type().pointer()
--
2.4.1


2015-05-22 05:32:34

by Jan Kiszka

[permalink] [raw]
Subject: Re: [PATCH] scripts/gdb: fix lx-lsmod refcnt

On 2015-05-20 16:42, Adrien Schildknecht wrote:
> Commit 2f35c41f58a9 ("module: Replace module_ref with atomic_t refcnt")
> changes the way refcnt is handled but did not update the gdb script to use
> the new variable.
>
> Since refcnt is not per-cpu anymore, we can directly read its value.
>
> Signed-off-by: Adrien Schildknecht <[email protected]>
> ---
> scripts/gdb/linux/modules.py | 9 +--------
> 1 file changed, 1 insertion(+), 8 deletions(-)
>
> diff --git a/scripts/gdb/linux/modules.py b/scripts/gdb/linux/modules.py
> index a1504c4..25db8cf 100644
> --- a/scripts/gdb/linux/modules.py
> +++ b/scripts/gdb/linux/modules.py
> @@ -73,18 +73,11 @@ class LxLsmod(gdb.Command):
> " " if utils.get_long_type().sizeof == 8 else ""))
>
> for module in module_list():
> - ref = 0
> - module_refptr = module['refptr']
> - for cpu in cpus.cpu_list("cpu_possible_mask"):
> - refptr = cpus.per_cpu(module_refptr, cpu)
> - ref += refptr['incs']
> - ref -= refptr['decs']
> -
> gdb.write("{address} {name:<19} {size:>8} {ref}".format(
> address=str(module['module_core']).split()[0],
> name=module['name'].string(),
> size=str(module['core_size']),
> - ref=str(ref)))
> + ref=str(module['refcnt']['counter'])))
>
> source_list = module['source_list']
> t = self._module_use_type.get_type().pointer()
>

Thanks for fixing!

Reviewed-by: Jan Kiszka <[email protected]>

--
Siemens AG, Corporate Technology, CT RTC ITP SES-DE
Corporate Competence Center Embedded Linux