diff options
| author | Mark Brown <broonie@linaro.org> | 2014-01-10 11:52:05 +0000 |
|---|---|---|
| committer | Mark Brown <broonie@linaro.org> | 2014-01-10 11:52:05 +0000 |
| commit | fce6bd84d663b92997e0fa9c971ed2b2cdf08fb4 (patch) | |
| tree | c5b460cfc60b16a7c6718ae2613bb1d9cb98e5b8 /kernel/time/tick-common.c | |
| parent | 56d37d85438df38e150282baafe52dcd588854c7 (diff) | |
| parent | 374b105797c3d4f29c685f3be535c35f5689b30e (diff) | |
| download | linux-next-fce6bd84d663b92997e0fa9c971ed2b2cdf08fb4.tar.gz linux-next-fce6bd84d663b92997e0fa9c971ed2b2cdf08fb4.zip | |
Merge tag 'v3.13-rc3' into asoc-arizona
Linux 3.13-rc3
Diffstat (limited to 'kernel/time/tick-common.c')
| -rw-r--r-- | kernel/time/tick-common.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c index 64522ecdfe0e..162b03ab0ad2 100644 --- a/kernel/time/tick-common.c +++ b/kernel/time/tick-common.c @@ -33,6 +33,21 @@ DEFINE_PER_CPU(struct tick_device, tick_cpu_device); */ ktime_t tick_next_period; ktime_t tick_period; + +/* + * tick_do_timer_cpu is a timer core internal variable which holds the CPU NR + * which is responsible for calling do_timer(), i.e. the timekeeping stuff. This + * variable has two functions: + * + * 1) Prevent a thundering herd issue of a gazillion of CPUs trying to grab the + * timekeeping lock all at once. Only the CPU which is assigned to do the + * update is handling it. + * + * 2) Hand off the duty in the NOHZ idle case by setting the value to + * TICK_DO_TIMER_NONE, i.e. a non existing CPU. So the next cpu which looks + * at it will take over and keep the time keeping alive. The handover + * procedure also covers cpu hotplug. + */ int tick_do_timer_cpu __read_mostly = TICK_DO_TIMER_BOOT; /* |
