[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20170811141526.6uvv7iosfchsmjdk@hirez.programming.kicks-ass.net>
Date: Fri, 11 Aug 2017 16:15:26 +0200
From: Peter Zijlstra <peterz@...radead.org>
To: Vineet Gupta <Vineet.Gupta1@...opsys.com>
Cc: "torvalds@...ux-foundation.org" <torvalds@...ux-foundation.org>,
"will.deacon@....com" <will.deacon@....com>,
"oleg@...hat.com" <oleg@...hat.com>,
"paulmck@...ux.vnet.ibm.com" <paulmck@...ux.vnet.ibm.com>,
"benh@...nel.crashing.org" <benh@...nel.crashing.org>,
"mpe@...erman.id.au" <mpe@...erman.id.au>,
"npiggin@...il.com" <npiggin@...il.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"mingo@...nel.org" <mingo@...nel.org>,
"stern@...land.harvard.edu" <stern@...land.harvard.edu>,
Russell King <linux@...linux.org.uk>,
Heiko Carstens <heiko.carstens@...ibm.com>,
Ralf Baechle <ralf@...ux-mips.org>,
arcml <linux-snps-arc@...ts.infradead.org>,
"David S. Miller" <davem@...emloft.net>,
Mel Gorman <mgorman@...e.de>, Rik van Riel <riel@...hat.com>
Subject: Re: ARC stuff (was Re: [PATCH -v2 1/4] mm: Rework
{set,clear,mm}_tlb_flush_pending())
On Wed, Aug 02, 2017 at 03:17:10PM +0200, Peter Zijlstra wrote:
> On Wed, Aug 02, 2017 at 06:30:43PM +0530, Vineet Gupta wrote:
> > flush_tlb_range() does a bunch of aux register accesses, I need to check
> > with hw folks if those can be assumed to serializing w.r.t. memory ordering.
> > But if not then we need to add an explicit smb barrier (which will not be
> > paired ? )
>
> It would pair with the ACQUIRE from the PTL in the below example.
>
> > and would be penalizing the other callers of flush_tlb_range().
> > Will a new API for this be an overkill ? Is a memory barrier needed here
> > anyways - like ARM !
>
> It is needed at the very least if you do transparant huge pages as per
> the existing logic (this requirement isn't new per this patch, I was
> just the silly person wondering if flush_tlb_range() does indeed provide
> the ordering assumed).
Any word on this? It just got way worse and anything SMP needs to
provide this.
See commit:
0a2dd266dd6b ("mm: make tlb_flush_pending global")
And these semantics are now required for the correct operation of KSM
and MADV_{FREE,DONT_NEED}.
Powered by blists - more mailing lists