Re: Severe performance regression w/ 4.4+ on Android due to cgroup locking changes

From: John Stultz
Date: Wed Jul 13 2016 - 16:57:20 EST


On Wed, Jul 13, 2016 at 1:39 PM, Tejun Heo <tj@xxxxxxxxxx> wrote:
> Hello,
>
> On Wed, Jul 13, 2016 at 10:26:57PM +0200, Peter Zijlstra wrote:
>> > So, it's a percpu rwsem issue then. I haven't really followed the
>> > perpcpu rwsem changes closely. Oleg, are multi-milisec delay expected
>> > on down write expected with the current implementation of
>> > percpu_rwsem?
>>
>> There is a synchronize_sched() in there, so sorta. That thing is heavily
>> geared towards readers, as is the only 'sane' choice for global locks.
>
> It used to use the expedited variant until 001dac627ff3
> ("locking/percpu-rwsem: Make use of the rcu_sync infrastructure"), so
> it might have been okay before then.

Just as a datapoint, just reverting 001dac627ff3
("locking/percpu-rwsem: Make use of the rcu_sync infrastructure"),
doesn't seem to help as much as your prior patch going to a normal
rwsem.

I'm consistently seeing values in the 100-550us range (with occasional
spikes around 6ms), with a max value at 36ms.

thanks
-john