Bug 83143 - ktimemon doesn't honor iowait for Linux 2.6 kernels
Summary: ktimemon doesn't honor iowait for Linux 2.6 kernels
Status: RESOLVED FIXED
Alias: None
Product: ktimemon
Classification: Miscellaneous
Component: general (show other bugs)
Version: unspecified
Platform: openSUSE Linux
: NOR wishlist
Target Milestone: ---
Assignee: Dirk Mueller
URL:
Keywords:
: 90669 120422 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-06-10 11:23 UTC by zeller
Modified: 2023-02-15 14:02 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description zeller 2004-06-10 11:23:33 UTC
Version:            (using KDE KDE 3.2.2)
Installed from:    SuSE RPMs
OS:                Linux

ktimemon shows the user, nice, kernel and idle times in a stacked
graph using /proc/stat under Linux.
Starting with kernel 2.6, the cpu line of /proc/stat splits the
kernel time into system time and iowait time.

The current display of ktimemon shows "full CPU load", when a 
process is doing extensive i/o operations (like updatedb, ...)
even when the user+nice+system time is way below 100%.

A quick fix would be to subtract the iowait time from the kernel
value in sample.cc:311 and sample.cc:322, another (more elegant)
solution would be to show all five values.

Bye,

Jürgen
Comment 1 Dirk Mueller 2006-03-20 17:52:52 UTC
*** Bug 90669 has been marked as a duplicate of this bug. ***
Comment 2 Dirk Mueller 2006-04-14 18:46:49 UTC
*** Bug 120422 has been marked as a duplicate of this bug. ***
Comment 3 Dirk Mueller 2006-04-14 18:47:50 UTC
mostly fixed by a patch from Michael Blakely
Comment 4 Dirk Mueller 2006-04-15 01:54:43 UTC
SVN commit 529985 by mueller:

don't count iowait time as cpu busy time
BUG: 83143


 M  +1 -1      timemon.cc  


--- trunk/KDE/kdeaddons/kicker-applets/ktimemon/timemon.cc #529984:529985
@@ -171,7 +171,7 @@
     if(!rect().contains(p)) return;
 
     KSample::Sample s = sample->getSample(100); // scale to 100(%)
-    int idle = 100 - s.kernel - s.user - s.nice - s.iowait;
+    int idle = 100 - s.kernel - s.user - s.nice;
     if ( idle < 0 )
         idle = 0;
     QString str = i18n("cpu: %1% idle\nmem: %2 MB %3% free\nswap: %4 MB %5% free",