From: Thomas Gleixner <tglx@timesys.com>
To: mgross@linux.intel.com
Cc: Con Kolivas <kernel@kolivas.org>,
Michal Piotrowski <michal.k.k.piotrowski@gmail.com>,
LKML <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@osdl.org>, john stultz <johnstul@us.ibm.com>,
Ingo Molnar <mingo@elte.hu>
Subject: Re: [PATCHSET] Announce: High-res timers, tickless/dyntick and dynamic HZ
Date: Tue, 20 Jun 2006 00:19:32 +0200 [thread overview]
Message-ID: <1150755573.6780.38.camel@localhost.localdomain> (raw)
In-Reply-To: <20060619215822.GA4178@linux.intel.com>
Mark,
On Mon, 2006-06-19 at 14:58 -0700, mark gross wrote:
> I'm just giving this a test spin now on my desktop boot. looking at uptime and cat /proc/interrupts
> ~/work> uptime;cat /proc/interrupts
> 2:51pm up 0:28, 5 users, load average: 0.00, 0.02, 0.08
> CPU0
> 0: 80007 XT-PIC timer
> 1: 1776 XT-PIC i8042
> 2: 0 XT-PIC cascade
> 8: 2 XT-PIC rtc
> 9: 0 XT-PIC acpi
> 11: 2156 XT-PIC eth0
> 12: 2879 XT-PIC i8042
> 14: 20402 XT-PIC ide0
> 15: 11 XT-PIC ide1
> NMI: 0
> LOC: 0
> ERR: 0
> MIS: 0
>
> or about 47.6 timer's a second.
>
> This system is mostly idle, is this about right or should I expect even fewer timer ticks?
We did not track down all culprits of useless timer schedules, but there
are definitely a couple of user space programs which we identified, e.g.
redhat network, debian and ubuntu updates applets and similar
candidates.
> Is there a way to see timer stats?
Enable timer stats in the kernel config
$ echo start >/proc/timer_input
$ do nothing for a while
$ cat /proc/timer_info
You get something like:
Function counter - Timer Top v0.9.9
collection period: 19.7 seconds
1 0 swapper verify_tsc_freq (verify_tsc_freq)
1 6 events/0 do_cache_clean (delayed_work_timer_fn)
1 0 swapper i8042_interrupt (i8042_timer_func)
2 0 swapper neigh_periodic_timer (neigh_periodic_timer)
2 148 pdflush wb_kupdate (wb_timer_fn)
1 1 swapper init_tsc_clocksource (verify_tsc_freq)
4 6 events/0 cache_reap (delayed_work_timer_fn)
1 2508 sh get_transaction (commit_timeout)
1 0 swapper page_writeback_init (wb_timer_fn)
4 1 init schedule_timeout (process_timeout)
9 0 swapper e100_watchdog (e100_watchdog)
9 0 swapper dev_watchdog (dev_watchdog)
6 1 swapper schedule_delayed_work_on (delayed_work_timer_fn)
1 1 swapper neigh_table_init_no_netlink (neigh_periodic_timer)
1 1 swapper i8042_probe (i8042_timer_func)
3 3317 bash schedule_timeout (process_timeout)
1 2973 ifconfig e100_up (e100_watchdog)
1 0 swapper __netdev_watchdog_up (dev_watchdog)
4 893 kirqd schedule_timeout (process_timeout)
5 0 swapper tty_flip_buffer_push (delayed_work_timer_fn)
repeat over time to find the tick wasters.
Also:
$ cat /proc/stat | grep nohz
gives you some stats about the idle state
nohz cpu0 I:37390 S:30025 T:2108551 A:70 E: 26891
nohz cpu1 I:15480 S:12614 T:2109231 A:49 E: 14508
nohz total I:52870 S:42639 T:4217782 A:98 E:41399
where:
I: number of idle calls
S: number of idle calls, which can sleep for at least one tick
T: total time (in tick units) slept in idle calls
A: average sleep time per "can sleep" idle call (in tick units)
E: number of timer interrupt events
You might also try to slow down the timer wheel activity by batching the
timeouts into multiples of the scheduler tick (HZ) by doing
$ echo $FACTOR >/proc/sys/kernel/timeout_granularity
e.g.
FACTOR=10 batches the timer wheel timers to 10ms on a HZ=1000 kernel
FACTOR=20 batches the timer wheel timers to 40ms on a HZ=250 kernel
.....
> FWIW Its nice to see this stuff start getting real.
Thanks,
tglx
next prev parent reply other threads:[~2006-06-19 22:18 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-18 15:10 Thomas Gleixner
2006-06-18 16:35 ` Michal Piotrowski
2006-06-18 18:28 ` Ingo Molnar
2006-06-19 16:35 ` Michal Piotrowski
2006-06-19 19:51 ` Thomas Gleixner
2006-06-25 13:06 ` Steven Rostedt
2006-06-25 14:26 ` Thomas Gleixner
2006-06-18 19:50 ` Thomas Gleixner
2006-06-19 12:09 ` Con Kolivas
2006-06-19 12:31 ` Thomas Gleixner
2006-06-19 13:05 ` Con Kolivas
2006-06-19 13:10 ` Thomas Gleixner
2006-06-19 21:58 ` mark gross
2006-06-19 22:19 ` Thomas Gleixner [this message]
2006-06-21 12:54 ` Felix Oxley
2006-06-21 13:07 ` Thomas Gleixner
2006-06-18 23:47 ` Roman Zippel
2006-06-19 12:50 ` Ingo Molnar
2006-06-19 13:47 ` Roman Zippel
2006-06-19 5:21 ` Con Kolivas
2006-06-19 5:24 ` Con Kolivas
2006-06-19 12:26 ` Ingo Molnar
2006-06-19 14:03 ` Con Kolivas
2006-06-19 20:06 ` Thomas Gleixner
2006-06-19 20:57 ` ACPI C-States algorithm updates for dyn-tick Dominik Brodowski
2006-06-19 21:28 ` [1/4] ACPI C-States: accounting of sleep states Dominik Brodowski
2006-06-19 21:29 ` [2/4] ACPI C-States: bm_activity improvements Dominik Brodowski
2006-06-19 21:31 ` [3/4] ACPI C-States: only demote on current bus mastering activity Dominik Brodowski
2006-06-19 21:33 ` [4/4 -- only for discussion] ACPI C-States: dyn-ticks-improvements (for -ck implementation) Dominik Brodowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1150755573.6780.38.camel@localhost.localdomain \
--to=tglx@timesys.com \
--cc=akpm@osdl.org \
--cc=johnstul@us.ibm.com \
--cc=kernel@kolivas.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mgross@linux.intel.com \
--cc=michal.k.k.piotrowski@gmail.com \
--cc=mingo@elte.hu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®