public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] Proper kernel irq time reporting -v0
@ 2010-10-20 22:48 Venkatesh Pallipadi
  2010-10-20 22:48 ` [PATCH 1/6] Free up pf flag PF_KSOFTIRQD Venkatesh Pallipadi
                   ` (5 more replies)
  0 siblings, 6 replies; 19+ messages in thread
From: Venkatesh Pallipadi @ 2010-10-20 22:48 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, H. Peter Anvin, Thomas Gleixner,
	Balbir Singh, Martin Schwidefsky
  Cc: linux-kernel, Paul Turner, Eric Dumazet, Shaun Ruffell,
	Yong Zhang, Venkatesh Pallipadi

This is part 2 of
"Proper kernel irq time accounting -v4"
http://lkml.indiana.edu/hypermail//linux/kernel/1010.0/01175.html

and applies over those changes.

Part 1 solves the way irqs are accounted in scheduler and tasks. This
patchset solves how irq times are reported in /proc/stat and also not
to include irq time in task->stime, etc.

Example:
Running a cpu intensive loop and network intensive nc on a 4 CPU system
and looking at 'top' output.

With vanilla kernel:
Cpu0  :  0.0% us,  0.3% sy,  0.0% ni, 99.3% id,  0.0% wa,  0.0% hi,  0.3% si
Cpu1  : 100.0% us,  0.0% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu2  :  1.3% us, 27.2% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi, 71.4% si
Cpu3  :  1.6% us,  1.3% sy,  0.0% ni, 96.7% id,  0.0% wa,  0.0% hi,  0.3% si

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 7555 root      20   0  1760  528  436 R  100  0.0   0:15.79 nc
 7563 root      20   0  3632  268  204 R  100  0.0   0:13.13 loop

Notes:
- Both tasks show 100% CPU, even when one of them is stuck on a CPU thats
  processing 70% softirq.
- no hardirq time.


With "part 1" patches:
Cpu0  :  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu1  : 100.0% us,  0.0% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si
Cpu2  :  2.0% us, 30.6% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi, 67.4% si
Cpu3  :  0.7% us,  0.7% sy,  0.3% ni, 98.3% id,  0.0% wa,  0.0% hi,  0.0% si

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 6289 root      20   0  3632  268  204 R  100  0.0   2:18.67 loop
 5737 root      20   0  1760  528  436 R   33  0.0   0:26.72 nc

Notes:
- Tasks show 100% CPU and 33% CPU that correspond to their non-irq exec time.
- no hardirq time.


With "part 1 + part 2" patches:
Cpu0  :  1.3% us,  1.0% sy,  0.3% ni, 97.0% id,  0.0% wa,  0.0% hi,  0.3% si
Cpu1  : 99.3% us,  0.0% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.7% hi,  0.0% si
Cpu2  :  1.3% us, 31.5% sy,  0.0% ni,  0.0% id,  0.0% wa,  8.3% hi, 58.9% si
Cpu3  :  1.0% us,  2.0% sy,  0.3% ni, 95.0% id,  0.0% wa,  0.7% hi,  1.0% si

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
20929 root      20   0  3632  268  204 R   99  0.0   3:48.25 loop
20796 root      20   0  1760  528  436 R   33  0.0   2:38.65 nc

Notes:
- Both task exec time and hard irq time reported correctly.
- hi and si time are based on fine granularity info and not on samples.
- getrusage would give proper utime/stime split not including irq times
  in that ratio.
- Other places that report user/sys time like, cgroup cpuacct.stat will
  now include only non-irq exectime.

Thanks,
Venki

Signed-off-by: Venkatesh Pallipadi <venki@google.com>


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2010-10-22 23:34 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-20 22:48 [PATCH 0/5] Proper kernel irq time reporting -v0 Venkatesh Pallipadi
2010-10-20 22:48 ` [PATCH 1/6] Free up pf flag PF_KSOFTIRQD Venkatesh Pallipadi
2010-10-21  5:23   ` Eric Dumazet
2010-10-21 14:36     ` Venkatesh Pallipadi
2010-10-21 14:58       ` Eric Dumazet
2010-10-21 17:03         ` Venkatesh Pallipadi
2010-10-21 15:13   ` Christoph Lameter
2010-10-21 17:06     ` Venkatesh Pallipadi
2010-10-20 22:48 ` [PATCH 2/6] Add nsecs_to_cputime64 interface for asm-generic Venkatesh Pallipadi
2010-10-20 22:48 ` [PATCH 3/6] Refactor account_system_time separating id and actual update Venkatesh Pallipadi
2010-10-20 22:49 ` [PATCH 4/6] Export ns irqtimes from IRQ_TIME_ACCOUNTING through /proc/stat Venkatesh Pallipadi
2010-10-21 14:44   ` Peter Zijlstra
2010-10-21 19:25     ` Venkatesh Pallipadi
2010-10-22 12:23       ` Peter Zijlstra
2010-10-22 23:34         ` Venkatesh Pallipadi
2010-10-20 22:49 ` [PATCH 5/6] Account ksoftirq time as cpustat softirq Venkatesh Pallipadi
2010-10-21 14:53   ` Peter Zijlstra
2010-10-21 19:10     ` Venkatesh Pallipadi
2010-10-21 17:25 ` [PATCH 0/5] Proper kernel irq time reporting -v0 Shaun Ruffell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox