Re: [PATCH v7 06/11] nohz: task_isolation: allow tick to be fully disabled

From: Frederic Weisbecker
Date: Thu Oct 01 2015 - 09:07:46 EST


On Mon, Sep 28, 2015 at 04:40:56PM -0400, Andy Lutomirski wrote:
> On Mon, Sep 28, 2015 at 11:17 AM, Chris Metcalf <cmetcalf@xxxxxxxxxx> wrote:
> > While the current fallback to 1-second tick is still helpful for
> > maintaining completely correct kernel semantics, processes using
> > prctl(PR_SET_TASK_ISOLATION) semantics place a higher priority on
> > running completely tickless, so don't bound the time_delta for such
> > processes. In addition, due to the way such processes quiesce by
> > waiting for the timer tick to stop prior to returning to userspace,
> > without this commit it won't be possible to use the task_isolation
> > mode at all.
> >
> > Removing the 1-second cap was previously discussed (see link
> > below) and Thomas Gleixner observed that vruntime, load balancing
> > data, load accounting, and other things might be impacted.
> > Frederic Weisbecker similarly observed that allowing the tick to
> > be indefinitely deferred just meant that no one would ever fix the
> > underlying bugs. However it's at least true that the mode proposed
> > in this patch can only be enabled on a nohz_full core by a process
> > requesting task_isolation mode, which may limit how important it is
> > to maintain scheduler data correctly, for example.
>
> What goes wrong when a task enables this? Presumably either tasks
> that enable it experience problems or performance issues or it should
> always be enabled.

We need to make the scheduler resilient to 0Hz tick. Currently it doesn't
even correctly support 1Hz or any dynticks behaviour that isn't idle.

See update_cpu_load_active() for exemple.

>
> One possible issue: __vdso_clock_gettime with any of the COARSE clocks
> as well as __vdso_time will break if the timekeeping code doesn't run
> somewhere with reasonable frequency on some core. Hopefully this
> always works.
>
> --Andy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/