Messages in this thread | | | Date | Fri, 12 Jun 2015 09:36:50 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH 7/8] nohz: Evaluate tick dependency once on context switch |
| |
On Thu, Jun 11, 2015 at 07:36:07PM +0200, Frederic Weisbecker wrote: > +static void tick_nohz_full_update_dependencies(void) > +{ > + struct tick_sched *ts = this_cpu_ptr(&tick_cpu_sched); > + > + if (!posix_cpu_timers_can_stop_tick(current)) > + ts->tick_needed |= TICK_NEEDED_POSIX_CPU_TIMER; > + > + if (!perf_event_can_stop_tick()) > + ts->tick_needed |= TICK_NEEDED_PERF_EVENT; > + > + if (!sched_can_stop_tick()) > + ts->tick_needed |= TICK_NEEDED_SCHED; > > #ifdef CONFIG_HAVE_UNSTABLE_SCHED_CLOCK > /* > + * sched_clock_tick() needs us? > + * > * TODO: kick full dynticks CPUs when > * sched_clock_stable is set. > */ > if (!sched_clock_stable()) { > + ts->tick_needed |= TICK_NEEDED_CLOCK_UNSTABLE; > /* > * Don't allow the user to think they can get > * full NO_HZ with this machine. > */ > WARN_ONCE(tick_nohz_full_running, > "NO_HZ FULL will not work with unstable sched clock"); > } > #endif > }
Colour me confused; why does this function exist at all? Should not these bits be managed by those respective subsystems?
| |