Re: [PATCH RFC tip/core/rcu 0/5] Expedited grace periods encouraging normal ones

From: Paul E. McKenney
Date: Thu Jul 02 2015 - 09:58:54 EST


On Thu, Jul 02, 2015 at 09:47:19AM +0200, Ingo Molnar wrote:
>
> * Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx> wrote:
>
> > On Wed, Jul 01, 2015 at 07:02:42PM +0200, Peter Zijlstra wrote:
> > > On Wed, Jul 01, 2015 at 09:17:05AM -0700, Paul E. McKenney wrote:
> > > > On Wed, Jul 01, 2015 at 04:17:10PM +0200, Peter Zijlstra wrote:
> > >
> > > > > 74b51ee152b6 ("ACPI / osl: speedup grace period in acpi_os_map_cleanup")
> > > >
> > > > Really???
> > > >
> > > > I am not concerned about this one. After all, one of the first things that
> > > > people do for OS-jitter-sensitive workloads is to get rid of binary blobs.
> > > > And any runtime use of ACPI as well. And let's face it, if your
> > > > latency-sensitive workload is using either binary blobs or ACPI, you have
> > > > already completely lost. Therefore, an additional expedited grace period
> > > > cannot possibly cause you to lose any more.
> > >
> > > This isn't solely about rt etc.. this call is a generic facility used by
> > > however many consumers. A normal workstation/server could run into it at
> > > relatively high frequency depending on its workload.
> > >
> > > Even on not latency sensitive workloads I think hammering all active CPUs is
> > > bad behaviour. Remember that a typical server class machine easily has more
> > > than 32 CPUs these days.
> >
> > Well, that certainly is one reason for the funnel locking, sequence counters,
> > etc., keeping the overhead bounded despite large numbers of CPUs. So I don't
> > believe that a non-RT/non-HPC workload is going to notice.
>
> So I think Peter's concern is that we should not be offering/promoting APIs that
> are easy to add, hard to remove/convert - especially if we _know_ they eventually
> have to be converted. That model does not scale, it piles up increasing amounts of
> crud.
>
> Also, there will be a threshold over which it will be increasingly harder to make
> hard-rt promises, because so much seemingly mundane functionality will be using
> these APIs. The big plus of -rt is that it's out of the box hard RT - if people
> are able to control their environment carefully they can use RTAI or so. I.e. it
> directly cuts into the usability of Linux in certain segments.
>
> Death by a thousand cuts and such.
>
> And it's not like it's that hard to stem the flow of algorithmic sloppiness at the
> source, right?

OK, first let me make sure that I understand what you are asking for:

1. Completely eliminate synchronize_rcu_expedited() and
synchronize_sched_expedited(), replacing all uses with their
unexpedited counterparts. (Note that synchronize_srcu_expedited()
does not wake up CPUs, courtesy of its read-side memory barriers.)
The fast-boot guys are probably going to complain, along with
the networking guys.

2. Keep synchronize_rcu_expedited() and synchronize_sched_expedited(),
but push back hard on any new uses and question any existing uses.

3. Revert 74b51ee152b6 ("ACPI / osl: speedup grace period in
acpi_os_map_cleanup").

4. Something else?

Thanx, Paul

--
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/