Re: [RFC][PATCH 01/13] sched/deadline: Impose global limits on sched_attr::sched_period

From: Peter Zijlstra
Date: Wed Sep 04 2019 - 07:31:02 EST


On Wed, Sep 04, 2019 at 06:16:16AM -0400, Steven Rostedt wrote:
> On Mon, 2 Sep 2019 11:16:23 +0200
> Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> > in sched_dl_period_handler(). And do:
> >
> > + preempt_disable();
> > max = (u64)READ_ONCE(sysctl_sched_dl_period_max) * NSEC_PER_USEC;
> > min = (u64)READ_ONCE(sysctl_sched_dl_period_min) * NSEC_PER_USEC;
> > + preempt_enable();
>
> Hmm, I'm curious. Doesn't the preempt_disable/enable() also add
> compiler barriers which would remove the need for the READ_ONCE()s here?

They do add compiler barriers; but they do not avoid the compiler
tearing stuff up.

So while Linus has declared that compilers should not be tearing shit
up, I'm hesitant to actually trust compilers much these days.