----- Original Message -----
> Hi,
> 
> This is a trivial crash extension to report the actual swap
> consumption of each user process.
> What do you think, any suggestions [1]?
> 
> For example:
> 
>       crash> ps tuned
>          PID    PPID  CPU       TASK        ST  %MEM     VSZ    RSS  COMM
>          1237      1  20  ffff8805418d7500  IN   0.0  174728   1664  tuned
>       crash> vm -p 1237 | grep SWAP | wc -l
>       974
>       crash> extend swap_usage.so
>       ./swap_usage.so: shared object loaded
>       crash> swap_usage | grep tuned
>        1237   3896    tuned
>       crash> p/d 974 << 2
>       $3 = 3896
>       crash>
> 
> Thanks,
> Aaron
> ---
> [1]:
> https://github.com/aktlin115/crash-extension/blob/f5667ca9e4a521c0aaa31303fb74c169ac0b0efd/swap_usage.c

Hi Anton,

A couple suggestions:

The _PAGE_FILE usage is x86-specific, so you're going to have
have to either restrict its use in the MEMBER_NOT_FOUND case,
or come up with other arch-specific logic.  In fact, it wouldn't
compile on anything other than x86_64. 
   
If you set up your cmd_swap_usage() function to check for arguments,
you can specify task/pid numbers as arguments in order to avoid the
"pipe-to-grep" requirement:

        while (args[optind]) {
                switch (str_to_context(args[optind], &value, &tc))
                {
                case STR_PID:
                        for (tc = pid_to_context(value); tc; tc = tc->tc_next) {
                                show_swap_usage(tc, exists);
                        }
                        break;

                case STR_TASK:
                        show_swap_usage(tc, exists);
                        break;

                case STR_INVALID:
                        error(INFO, "invalid task or pid value: %s\n",
                                args[optind]);
                        break;
                }

                subsequent++;
                optind++;
        }

And a "help" page would be nice...

Thanks,
  Dave

--
Crash-utility mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/crash-utility

Reply via email to