Review Request 120406: ksysguardd: Avoid including IO-wait in CPU load.

Søren Holm sgh at sgh.dk
Sun Oct 5 13:11:56 BST 2014



> On okt. 5, 2014, 10:29 a.m., Milian Wolff wrote:
> > Hmm... there is no way to see the wait time anywhere then, right? I don't see a way to add individual columns for that. Maybe that should be re-thought for frameworks. I.e. keep the CPU% like now but add more columns for the individual cpu/wait times?
> 
> Søren Holm wrote:
>     That's right. But fact is that IO-wait is not time actually used. It's just a clasification of the idle cpu time.
> 
> Thomas Lübking wrote:
>     Notice that it is NOT included in the idle time, though.
>     I don't know the code in question, but assume it needs to be added to the idletime somewhere?
> 
> Søren Holm wrote:
>     Well - it should not be added.
>     
>     usertime + nicetime + systemtime + idletime = 1
>     
>     idletime = true_idle_time + iowait
>     
>     The true_idle_time is the percentage of time where a process is waiting for IO. During that time the CPU can do other things just as when no process is waiting for IO. IO-wait is AFAIK only used to pinpoint IO-bottlenecks.
> 
> Thomas Lübking wrote:
>     If "idletime" already is an aggregation of the /proc/stat idle and iowait, then that's of course not needed.
>     
>     > The true_idle_time is the percentage of time where a process is waiting for IO.
>     
>     iowait should be the time where a cpu waits for I/O - the idle field ("true_idle_time", I assume) is the time where it really doesn't do anything.
>     
>     As mentioned, I don't know the code, all I can tell is that fields 4 & 5 are disjunct (you will eg. notice that when monitoring dd: idle drops where iowait raises)

You are right. The time the CPU is doing nothing is "idle + iowait". So for at quardcore system with a blocking dd running:  idletime==75%  iowait=25%.
>From a visualization point of view the idletime is AFAIK not visualized anywhere - only actual CPU-usage is displayed. And IO-wait is for sure not actual CPU-usage since the kernel will be idling there as well.

Do you know other people that might have a better felling of the ksysguardd code? I for sure have worse insight than you :)


- Søren


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/120406/#review67948
-----------------------------------------------------------


On sept. 28, 2014, 3:07 p.m., Søren Holm wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/120406/
> -----------------------------------------------------------
> 
> (Updated sept. 28, 2014, 3:07 p.m.)
> 
> 
> Review request for kde-workspace.
> 
> 
> Repository: kde-workspace
> 
> 
> Description
> -------
> 
> IO-wait is included in the cpu usage. This is wrong since IO-wait is a part of the idle time. This goes for both total combines CPU-usage and the per CPU usage.
> 
> 
> Diffs
> -----
> 
>   ksysguard/ksysguardd/Linux/stat.c 534a465 
> 
> Diff: https://git.reviewboard.kde.org/r/120406/diff/
> 
> 
> Testing
> -------
> 
> Fx. running a read from a slow USB-media like this will always end up showing 25% load on my system (I have 4 cores)
> 
> dd if=/dev/sdb of=/dev/null bs=1M 
> 
> This end up being around 0% with my patch.
> 
> 
> Thanks,
> 
> Søren Holm
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20141005/28c250ab/attachment.htm>


More information about the kde-core-devel mailing list