Re: Severe performance regression w/ 4.4+ on Android due to cgroup locking changes
From: Tejun Heo
Date: Thu Jul 14 2016 - 11:24:42 EST
On Thu, Jul 14, 2016 at 11:07:15AM -0400, Tejun Heo wrote:
> On Thu, Jul 14, 2016 at 02:20:49PM +0200, Peter Zijlstra wrote:
> > > If that's the case, we have the wrong implemention
> > > for percpu-rwsem where very long delays for writers induce the same
> > > level of delays to all readers. If expedited by default isn't
> > > workable, we should move away from rcu_sync for percpu_rwsem.
> >
> > Just because your usecase doesn't like it, doesn't mean its not good.
> > Its a perfectly fine implementation for uprobes for example. The
> > addition/removal of uprobes is extremely rare, as global writers should
> > be.
> >
> > And no, the writer delay isn't observed by the readers, those will
> > continue 'undisturbed' for most of it.
>
> How? While write lock is pending, no new reader is allowed. If
> reader ops are high frequency, they will surely get affected. It just
> isn't a good design to inject RCU grace period synchronously into a
> hot path.
Oops, right, the grace period is just used to switch the lock to
global mode while readers are passing through. Never mind this point.
It's purely about writer latency then.
Thanks.
--
tejun