From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 14 May 2018 17:44:06 -0700 From: Matthew Wilcox To: Andrew Morton Cc: Boaz Harrosh , Jeff Moyer , "Kirill A. Shutemov" , linux-kernel , linux-fsdevel , "linux-mm@kvack.org" , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , x86@kernel.org, Peter Zijlstra , Dave Hansen , Rik van Riel , Jan Kara , Matthew Wilcox , Amit Golander Subject: Re: [PATCH] mm: Add new vma flag VM_LOCAL_CPU Message-ID: <20180515004406.GB5168@bombadil.infradead.org> References: <0efb5547-9250-6b6c-fe8e-cf4f44aaa5eb@netapp.com> <20180514144901.0fe99d240ff8a53047dd512e@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180514144901.0fe99d240ff8a53047dd512e@linux-foundation.org> Sender: owner-linux-mm@kvack.org List-ID: On Mon, May 14, 2018 at 02:49:01PM -0700, Andrew Morton wrote: > On Mon, 14 May 2018 20:28:01 +0300 Boaz Harrosh 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.