Re: 4.13..4.14 scheduling overhead regression (bisected - b956575bed91)

From: Rik van Riel
Date: Fri Jun 01 2018 - 14:56:37 EST


On Fri, 2018-06-01 at 15:20 +0200, Peter Zijlstra wrote:
> On Fri, Jun 01, 2018 at 02:57:53PM +0200, Mike Galbraith wrote:
> > b956575bed91ecfb136a8300742ecbbf451471ab is the first bad commit
> > commit b956575bed91ecfb136a8300742ecbbf451471ab
> > Author: Andy Lutomirski <luto@xxxxxxxxxx>
> > Date: Mon Oct 9 09:50:49 2017 -0700
> >
> > x86/mm: Flush more aggressively in lazy TLB mode
>
> Oh boy... Maybe we should start looking at that optimization Andy
> mentioned.
>
> IIRC all page freeing does indeed go through tlb_remove_page(), it
> shouldn't be too hard to make that work.

Page freeing does. However, page table freeing
does not, and might need to be done in a different
way.

I wonder how expensive/effective it would be to free
page tables with RCU, and have the RCU code flush the
TLB if it notices the ctx_id is wrong?

Also, I need to go find Andy's optimization, and
see how it works :)

--
All Rights Reversed.

Attachment: signature.asc
Description: This is a digitally signed message part