[SOLVED] iotop : CONFIG_TASK_DELAY_ACCT not enabled in kernel
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
iotop : CONFIG_TASK_DELAY_ACCT not enabled in kernel
CONFIG_TASK_DELAY_ACCT not enabled in kernel, cannot determine SWAPIN and IO %
iotop is a pretty useful tool. But with the current (compact) kernel the above message is displayed. And it corrupts the screen output too. So request to Pat to consider enabling it at next kernel build in the new current tree.
Even when set to Y in kernel config, it's disabled by default. It doesn't seem to work to set it on the fly either with echo 1, and if you use the sysctl only processes started after will be accounted.
Usage
Compile the kernel with:
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASKSTATS=y
Delay accounting is disabled by default at boot up. To enable, add:
delayacct
to the kernel boot options. The rest of the instructions below assume this has been done. Alternatively, use sysctl kernel.task_delayacct to switch the state at runtime. Note however that only tasks started after enabling it will have delayacct information.
P.S. I should say that I use iotop and all my kernels have the delayacct parameter appended. I can neither quantify nor qualify any performance hit from accounting overhead.
Last edited by TheRealGrogan; 02-15-2022 at 01:39 PM.
In reading online, it seems like this might be an issue in iotop not detecting any sysctl changes. So even though delayacct might have been enabled via sysctl, the iotop on SBo doesn't detect that change. In the github issue linked, it seems that it might be tied to the python version of iotop (which is what SBo uses), but the repo in the linked bug report is apparently a c version that supposedly has the fix.
It might be worth looking into switching the python iotop on SBo to the C version of iotop as that has been continually updated (had a release 19 days ago) whereas the 0.6 python version was released 8 years ago (although, there is some git activity that could eventually turn into a release).
Maybe someone on 15.0 can check by building the c version of iotop and see if it works (I'm running an older kernel without the issue, so I can't check). Apparently some distros distribute both versions and call the C version iotop-c, but if the python version is effectively broken, I imagine we should probably just replace it with the ported version.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.