Re: [PATCH] workqueue: avoid nohz_full cores

From: Peter Zijlstra
Date: Wed Apr 01 2015 - 03:56:13 EST


On Tue, Mar 31, 2015 at 03:37:45PM -0400, Tejun Heo wrote:
> Hello, Chris.
>
> On Tue, Mar 31, 2015 at 03:25:59PM -0400, cmetcalf@xxxxxxxxxx wrote:
> > From: Chris Metcalf <cmetcalf@xxxxxxxxxx>
> >
> > When queuing work, we should avoid queuing it on the local cpu if
> > we are using WORK_CPU_UNBOUND and the local cpu is nohz_full, since
> > the workqueue will mean a later interrupt of the nohz_full process
> > that presumably would prefer continuing to have 100% of the core
> > without interrupts.
> >
> > Likewise, remove the nohz_full cores from unbound workqueues. If
> > all the cores are nohz_full, we leave them in.
>
> The problem with this is that workqueue currently doesn't distinguish
> why work items are queued on per-cpu workqueues. It can't tell
> whether being bound to local CPU is for correctness or optimization
> and thus can't break local execution guarantee for anybody. We need
> to hunt down all the ones which depend on local execution and annotate
> them with explicit queue_work_on() before being able to do this.

This is moot on unbound workqueues, they can run wherever so it can
never be a correctness thing, right?
--
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/