Re: [PATCH] mm: Add new vma flag VM_LOCAL_CPU

From: Matthew Wilcox
Date: Mon May 14 2018 - 20:44:14 EST


On Mon, May 14, 2018 at 02:49:01PM -0700, Andrew Morton wrote:
> On Mon, 14 May 2018 20:28:01 +0300 Boaz Harrosh <boazh@xxxxxxxxxx> wrote:
> > In this project we utilize a per-core server thread so everything
> > is kept local. If we use the regular zap_ptes() API All CPU's
> > are scheduled for the unmap, though in our case we know that we
> > have only used a single core. The regular zap_ptes adds a very big
> > latency on every operation and mostly kills the concurrency of the
> > over all system. Because it imposes a serialization between all cores
>
> I'd have thought that in this situation, only the local CPU's bit is
> set in the vma's mm_cpumask() and the remote invalidations are not
> performed. Is that a misunderstanding, or is all that stuff not working
> correctly?

I think you misunderstand Boaz's architecture. He has one thread per CPU,
so every bit will be set in the mm's (not vma's) mm_cpumask.