Re: [PATCH 1/8] kcsan: Add Kernel Concurrency Sanitizer infrastructure

From: Peter Zijlstra
Date: Thu Oct 17 2019 - 03:48:05 EST


On Wed, Oct 16, 2019 at 09:34:05PM +0200, Marco Elver wrote:
> On Wed, 16 Oct 2019 at 20:44, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> > > + /*
> > > + * Disable interrupts & preemptions, to ignore races due to accesses in
> > > + * threads running on the same CPU.
> > > + */
> > > + local_irq_save(irq_flags);
> > > + preempt_disable();
> >
> > Is there a point to that preempt_disable() here?
>
> We want to avoid being preempted while the watchpoint is set up;
> otherwise, we would report data-races for CPU-local data, which is
> incorrect.

Disabling IRQs already very much disables preemption. There is
absolutely no point in doing preempt_disable() when the whole section
already runs with IRQs disabled.