Re: vmstat: On demand vmstat workers V8

From: Peter Zijlstra
Date: Tue Jul 29 2014 - 08:23:14 EST


On Tue, Jul 29, 2014 at 08:05:25AM -0400, Tejun Heo wrote:
> On Tue, Jul 29, 2014 at 09:56:37AM +0200, Peter Zijlstra wrote:
> > On Mon, Jul 28, 2014 at 01:55:17PM -0500, Christoph Lameter wrote:
> > > On Fri, 25 Jul 2014, Sasha Levin wrote:
> > >
> > > > This patch doesn't interact well with my fuzzing setup. I'm seeing
> > > > the following:
> > > >
> > > > [ 490.446927] BUG: using __this_cpu_read() in preemptible [00000000] code: kworker/16:1/7368
> > > > [ 490.447909] caller is __this_cpu_preempt_check+0x13/0x20
> > >
> > > __this_cpu_read() from vmstat_update is only called from a kworker that
> > > is bound to a single cpu. A false positive?
> >
> > kworkers are never guaranteed to be so, its a 'feature' :/
>
> It's because we don't distinguish work items which are per-cpu for
> optimization and per-cpu for correctness and can't automatically flush
> / cancel / block per-cpu work items when a cpu goes down. I like the
> idea of distingushing them but it's gonna take a lot of auditing.

Just force flush on unplug and fix those that complain. No auditing
needed for that.

> Any work item usage which requires per-cpu for correctness should
> implement cpu down hook to flush in-flight work items and block
> further issuance. This hasn't changed from the beginning and was
> necessary even before cmwq.

I think before cmwq we'd run into the broken affinity warning in the
scheduler.
--
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/