iotop icon indicating copy to clipboard operation
iotop copied to clipboard

No processes shown (option "-o")

Open bcutter opened this issue 1 year ago • 2 comments

I switched from iotop to iotop-c because of the "CONFIG_TASK_DELAY_ACCT not enabled in kernel, cannot determine SWAPIN and IO %" error since I guess Debian 11.

Now comparing both, I discover that with the same set of parameters no processes are shown at all:

  • left: sudo iotop -aoP
  • right: sudo iotop-c -aoP

grafik

I tracked it down: using o parameter is responsible for the empty list of processes. Using a and/or P is working fine.

bcutter avatar Nov 02 '24 20:11 bcutter

There is one catch with option o - when the sysctl is disabled it checks bytes in+out, else io.

But the kernel does not keep the io stats for processes started before enabling the sysctl...

I do not have a clean idea how to change it in a way to avoid confusion like the above

bbonev avatar Nov 02 '24 20:11 bbonev

So the only workaround is to use it without the o option to get a list of relevant processes at all and fully rely on the (top-down) sorting... right?

BTW: I also noticed there's

  • a huge difference in the shown values (top section, current read/write), but at least the total read/write is shown correctly
  • no info section at the bottom anymore (did not find a way to re-introduce it - quite hard to use iotop without that supporting keystroke hints)

bcutter avatar Nov 02 '24 20:11 bcutter

I did change the logic of -o to consider both READ+WRITE and IO. Please re-test with version 1.26 or latest git.

About that difference - iotop-c gets the data from /proc/vmstat, I do not see how that can go wrong...

Did you try the ? and h hotkeys? ? toggles the bottom row, while h displays the full help.

bbonev avatar Dec 30 '24 09:12 bbonev

For me no values (IO / SWAP / Disk read / Disk write) are shown at all. I bet that's because of the 64 bit kernel and the 32 bit userland. Current versions served by package repositories are quite old (Debian 11):

iotop-c/oldstable,now 1.17-1+deb11u1 armhf  [installiert]
iotop/oldstable,now 0.6-24-g733f3f8-1.1 armhf  [installiert]

I guess I would/could manually upgrade to latest https://github.com/Tomas-M/iotop/releases/tag/v1.26 but I suspect the core issue will remain due to the kernel change. Does that make sense to you? --> Edit: tried manual upgrade which initially failed in the make part. Don't want to waste any more time on this, I will upgrade the OS to participate from younger releases provided by the package manager instead.

bcutter avatar Dec 30 '24 12:12 bcutter

I am not sure how the difference in type sizes is handled on the 64bit kernel/32bit userland combo... It may be ok, because netlink handles it. Or maybe there are bugs to be discovered.

There is 1.23 in backports: apt -t oldstable/backports install iotop-c

The best way is to compile from source using the master branch. iotop-c needs only libncurses*-dev and pkgconfig to build

bbonev avatar Dec 31 '24 13:12 bbonev

Please re-open if the difference is still there with the latest git version

bbonev avatar Jan 09 '25 20:01 bbonev