Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1709666

Re: ARC stuff (was Re: [PATCH -v2 1/4] mm: Rework {set,clear,mm}_tlb_flush_pending())

From Peter Zijlstra <peterz@infradead.org>
Newsgroups linux.kernel
Subject Re: ARC stuff (was Re: [PATCH -v2 1/4] mm: Rework {set,clear,mm}_tlb_flush_pending())
Date 2017-08-11 16:20 +0200
Message-ID <udiX8-4AP-33@gated-at.bofh.it> (permalink)
References <ua0k2-RL-9@gated-at.bofh.it> <ua0k3-RL-37@gated-at.bofh.it> <ua1zs-1Rq-29@gated-at.bofh.it> <ua1J8-1UY-23@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


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}.

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH -v2 0/4] Getting rid of smp_mb__before_spinlock Peter Zijlstra <peterz@infradead.org> - 2017-08-02 13:50 +0200
  [PATCH -v2 1/4] mm: Rework {set,clear,mm}_tlb_flush_pending() Peter Zijlstra <peterz@infradead.org> - 2017-08-02 13:50 +0200
    Re: [PATCH -v2 1/4] mm: Rework {set,clear,mm}_tlb_flush_pending() Peter Zijlstra <peterz@infradead.org> - 2017-08-02 15:10 +0200
      Re: [PATCH -v2 1/4] mm: Rework {set,clear,mm}_tlb_flush_pending() Mel Gorman <mgorman@suse.de> - 2017-08-02 16:00 +0200
        Re: [PATCH -v2 1/4] mm: Rework {set,clear,mm}_tlb_flush_pending() Peter Zijlstra <peterz@infradead.org> - 2017-08-02 16:20 +0200
    Re: [PATCH -v2 1/4] mm: Rework {set,clear,mm}_tlb_flush_pending() Mel Gorman <mgorman@suse.de> - 2017-08-02 15:10 +0200
    ARC stuff (was Re: [PATCH -v2 1/4] mm: Rework  {set,clear,mm}_tlb_flush_pending()) Vineet Gupta <Vineet.Gupta1@synopsys.com> - 2017-08-02 15:10 +0200
      Re: ARC stuff (was Re: [PATCH -v2 1/4] mm: Rework  {set,clear,mm}_tlb_flush_pending()) Peter Zijlstra <peterz@infradead.org> - 2017-08-02 15:20 +0200
        Re: ARC stuff (was Re: [PATCH -v2 1/4] mm: Rework  {set,clear,mm}_tlb_flush_pending()) Peter Zijlstra <peterz@infradead.org> - 2017-08-11 16:20 +0200
    Re: [PATCH -v2 1/4] mm: Rework {set,clear,mm}_tlb_flush_pending() Will Deacon <will.deacon@arm.com> - 2017-08-03 17:30 +0200
    Re: [PATCH -v2 1/4] mm: Rework {set,clear,mm}_tlb_flush_pending() Peter Zijlstra <peterz@infradead.org> - 2017-08-11 11:50 +0200

csiph-web