Re: [PATCH 04/10] x86,mm: use on_each_cpu_cond for TLB flushes

From: Rik van Riel
Date: Sun Jul 29 2018 - 08:03:14 EST


On Sat, 2018-07-28 at 19:58 -0700, Andy Lutomirski wrote:
> On Sat, Jul 28, 2018 at 2:53 PM, Rik van Riel <riel@xxxxxxxxxxx>
> wrote:
> > Instead of open coding bitmap magic, use on_each_cpu_cond
> > to determine which CPUs to send TLB flush IPIs to.
> >
> > This might be a little bit slower than examining the bitmaps,
> > but it should be a lot easier to maintain in the long run.
>
> Looks good.
>
> i assume it's not easy to get the remove-tables case to do a single
> on_each_cpu_cond() instead of two? Currently it's doing the lazy
> ones and the non-lazy ones separately.

Indeed. The TLB gather batch size means we need to send
IPIs to the non-lazy CPUs whenever we have gathered so
many pages that our tlb_gather data structure is full.

This could result in many IPIs during a large munmap.

The lazy CPUs get one IPI before page table freeing.

--
All Rights Reversed.

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