Re: [RFC PATCH] x86/mm: Flush more aggressively in lazy TLB mode

From: Andy Lutomirski
Date: Mon Oct 09 2017 - 14:32:13 EST


On Mon, Oct 9, 2017 at 11:08 AM, Borislav Petkov <bp@xxxxxxxxx> wrote:
> On Mon, Oct 09, 2017 at 10:50:34AM -0700, Andy Lutomirski wrote:
>> The choices are somewhat lazy and not lazy at all.
>
> Yeah, you probably should explain those choices somewhere and what
> exactly they mean.
>
>> The degree of simplification I would get by removing it is basically
>> nil. The debugfs code itself goes away, and a
>> static_branch_unlikely() turns into a static_cpu_has(), and that's it.
>
> Sure. But it is one variable less which is not really needed by the
> widest audience.
>
>> The real reason I added it is because Chris Mason volunteered to
>> benchmark it, and I'll send it to him once it survives a bit of
>> review.
>
> Sure but it still doesn't need to be upstream. You can do all the
> measurements with a patch ontop. You don't need the permanent knob in
> debugfs either. After a year, no one would really need that anymore,
> since the majority will be PCID machines.
>
>> This is non-lazy. It's roughtly what our state was in old kernels
>> when we went lazy and then called leave_mm().
>
> non-lazy when we went lazy?!
>
> Now I'm confused :)

The function enter_lazy_tlb() is horribly named. It really just means
scheduler_doesnt_need_an_mm_anymore().

--Andy