Re: [PATCH v2 tip/core/rcu 0/13] Miscellaneous fixes for 4.12

From: Christian Borntraeger
Date: Wed Apr 19 2017 - 09:26:08 EST


On 04/19/2017 03:22 PM, Paul E. McKenney wrote:
> On Wed, Apr 19, 2017 at 01:48:08PM +0200, Christian Borntraeger wrote:
>> On 04/19/2017 01:28 PM, Peter Zijlstra wrote:
>>>
>>> So the thing Maz complained about is because KVM assumes
>>> synchronize_srcu() is 'free' when there is no srcu_read_lock() activity.
>>> This series 'breaks' that.
>>
>> Why is such a behaviour change not mentioned in the cover letter?
>> I could not find anything in the patch descriptions that would
>> indicate a slowdown. How much slower did it get?
>
> It was an 8x slowdown in boot time of a guest OS running UEFI, from
> five seconds to forty seconds. The fix restored the original boot time.
>
> Why didn't I report the slowdown in my cover letter? Because I didn't
> realize that I had created such a stupid bug! ;-)
>
> Why didn't my testing reveal the bug? Because in my rcutorture testing,
> the buggy code runs about as fast as the original, and the fixed new code
> runs about an order of magnitude faster. This is because rcutorture's
> performance statistics are mostly sensitive to throughput, while Marc's
> boot-time run is mostly sensitive to latency.
>
>> But indeed, there are several places at KVM startup which have been
>> reworked to srcu since normal rcu was too slow for several usecases.
>> (Mostly registering devices and related data structures at startup,
>> basically the qemu/kvm coldplug interaction)
>
> And here is the patch that restored Marc's boot speed. It simply changes
> the original (buggy) fixed delay for no delay in the expedited case and
> the same fixed delay in the non-expedited case.
>
> Thanx, Paul

Ok, so it was not a fundamental rework, it was just a bug.
Then nevermind :-)