All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Nicholas Piggin <npiggin@gmail.com>
Cc: linux-arch@vger.kernel.org, x86@kernel.org,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Arnd Bergmann <arnd@arndb.de>,
	linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-mm@kvack.org, Anton Blanchard <anton@ozlabs.org>
Subject: Re: [RFC PATCH 4/7] x86: use exit_lazy_tlb rather than membarrier_mm_sync_core_before_usermode
Date: Fri, 10 Jul 2020 11:42:01 +0200	[thread overview]
Message-ID: <20200710094201.GZ4800@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <20200710015646.2020871-5-npiggin@gmail.com>

On Fri, Jul 10, 2020 at 11:56:43AM +1000, Nicholas Piggin wrote:
> And get rid of the generic sync_core_before_usermode facility.
> 
> This helper is the wrong way around I think. The idea that membarrier
> state requires a core sync before returning to user is the easy one
> that does not need hiding behind membarrier calls. The gap in core
> synchronization due to x86's sysret/sysexit and lazy tlb mode, is the
> tricky detail that is better put in x86 lazy tlb code.
> 
> Consider if an arch did not synchronize core in switch_mm either, then
> membarrier_mm_sync_core_before_usermode would be in the wrong place
> but arch specific mmu context functions would still be the right place.
> There is also a exit_lazy_tlb case that is not covered by this call, which
> could be a bugs (kthread use mm the membarrier process's mm then context
> switch back to the process without switching mm or lazy mm switch).
> 
> This makes lazy tlb code a bit more modular.

Hurmph, I know I've been staring at this at some point. I think I meant
to have a TIF to force the IRET path in the case of MEMBAR_SYNC_CORE.
But I was discouraged by amluto.


WARNING: multiple messages have this Message-ID (diff)
From: Peter Zijlstra <peterz@infradead.org>
To: Nicholas Piggin <npiggin@gmail.com>
Cc: linux-arch@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
	x86@kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	linuxppc-dev@lists.ozlabs.org
Subject: Re: [RFC PATCH 4/7] x86: use exit_lazy_tlb rather than membarrier_mm_sync_core_before_usermode
Date: Fri, 10 Jul 2020 11:42:01 +0200	[thread overview]
Message-ID: <20200710094201.GZ4800@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <20200710015646.2020871-5-npiggin@gmail.com>

On Fri, Jul 10, 2020 at 11:56:43AM +1000, Nicholas Piggin wrote:
> And get rid of the generic sync_core_before_usermode facility.
> 
> This helper is the wrong way around I think. The idea that membarrier
> state requires a core sync before returning to user is the easy one
> that does not need hiding behind membarrier calls. The gap in core
> synchronization due to x86's sysret/sysexit and lazy tlb mode, is the
> tricky detail that is better put in x86 lazy tlb code.
> 
> Consider if an arch did not synchronize core in switch_mm either, then
> membarrier_mm_sync_core_before_usermode would be in the wrong place
> but arch specific mmu context functions would still be the right place.
> There is also a exit_lazy_tlb case that is not covered by this call, which
> could be a bugs (kthread use mm the membarrier process's mm then context
> switch back to the process without switching mm or lazy mm switch).
> 
> This makes lazy tlb code a bit more modular.

Hurmph, I know I've been staring at this at some point. I think I meant
to have a TIF to force the IRET path in the case of MEMBAR_SYNC_CORE.
But I was discouraged by amluto.


  reply	other threads:[~2020-07-10  9:42 UTC|newest]

Thread overview: 136+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-10  1:56 [RFC PATCH 0/7] mmu context cleanup, lazy tlb cleanup, Nicholas Piggin
2020-07-10  1:56 ` Nicholas Piggin
2020-07-10  1:56 ` [RFC PATCH 1/7] asm-generic: add generic MMU versions of mmu context functions Nicholas Piggin
2020-07-10  1:56   ` Nicholas Piggin
2020-07-10  1:56 ` [RFC PATCH 2/7] arch: use asm-generic mmu context for no-op implementations Nicholas Piggin
2020-07-10  1:56   ` Nicholas Piggin
2020-07-10  1:56 ` [RFC PATCH 3/7] mm: introduce exit_lazy_tlb Nicholas Piggin
2020-07-10  1:56   ` Nicholas Piggin
2020-07-10  1:56 ` [RFC PATCH 4/7] x86: use exit_lazy_tlb rather than membarrier_mm_sync_core_before_usermode Nicholas Piggin
2020-07-10  1:56   ` Nicholas Piggin
2020-07-10  9:42   ` Peter Zijlstra [this message]
2020-07-10  9:42     ` Peter Zijlstra
2020-07-10 14:02   ` Mathieu Desnoyers
2020-07-10 14:02     ` Mathieu Desnoyers
2020-07-10 14:02     ` Mathieu Desnoyers
2020-07-10 17:04   ` Andy Lutomirski
2020-07-10 17:04     ` Andy Lutomirski
2020-07-10 17:04     ` Andy Lutomirski
2020-07-13  4:45     ` Nicholas Piggin
2020-07-13  4:45       ` Nicholas Piggin
2020-07-13 13:47       ` Nicholas Piggin
2020-07-13 13:47         ` Nicholas Piggin
2020-07-13 14:13         ` Mathieu Desnoyers
2020-07-13 14:13           ` Mathieu Desnoyers
2020-07-13 14:13           ` Mathieu Desnoyers
2020-07-13 15:48           ` Andy Lutomirski
2020-07-13 15:48             ` Andy Lutomirski
2020-07-13 15:48             ` Andy Lutomirski
2020-07-13 16:37             ` Nicholas Piggin
2020-07-13 16:37               ` Nicholas Piggin
2020-07-16  4:15           ` Nicholas Piggin
2020-07-16  4:15             ` Nicholas Piggin
2020-07-16  4:42             ` Nicholas Piggin
2020-07-16  4:42               ` Nicholas Piggin
2020-07-16 15:46               ` Mathieu Desnoyers
2020-07-16 15:46                 ` Mathieu Desnoyers
2020-07-16 15:46                 ` Mathieu Desnoyers
2020-07-16 16:03                 ` Mathieu Desnoyers
2020-07-16 16:03                   ` Mathieu Desnoyers
2020-07-16 16:03                   ` Mathieu Desnoyers
2020-07-16 18:58                   ` Mathieu Desnoyers
2020-07-16 18:58                     ` Mathieu Desnoyers
2020-07-16 18:58                     ` Mathieu Desnoyers
2020-07-16 21:24                     ` Alan Stern
2020-07-16 21:24                       ` Alan Stern
2020-07-17 13:39                       ` Mathieu Desnoyers
2020-07-17 13:39                         ` Mathieu Desnoyers
2020-07-17 13:39                         ` Mathieu Desnoyers
2020-07-17 14:51                         ` Alan Stern
2020-07-17 14:51                           ` Alan Stern
2020-07-17 15:39                           ` Mathieu Desnoyers
2020-07-17 15:39                             ` Mathieu Desnoyers
2020-07-17 15:39                             ` Mathieu Desnoyers
2020-07-17 16:11                             ` Alan Stern
2020-07-17 16:11                               ` Alan Stern
2020-07-17 16:22                               ` Mathieu Desnoyers
2020-07-17 16:22                                 ` Mathieu Desnoyers
2020-07-17 16:22                                 ` Mathieu Desnoyers
2020-07-17 17:44                                 ` Alan Stern
2020-07-17 17:44                                   ` Alan Stern
2020-07-17 17:52                                   ` Mathieu Desnoyers
2020-07-17 17:52                                     ` Mathieu Desnoyers
2020-07-17 17:52                                     ` Mathieu Desnoyers
2020-07-17  0:00                     ` Nicholas Piggin
2020-07-17  0:00                       ` Nicholas Piggin
2020-07-16  5:18             ` Andy Lutomirski
2020-07-16  5:18               ` Andy Lutomirski
2020-07-16  6:06               ` Nicholas Piggin
2020-07-16  6:06                 ` Nicholas Piggin
2020-07-16  8:50               ` Peter Zijlstra
2020-07-16  8:50                 ` Peter Zijlstra
2020-07-16 10:03                 ` Nicholas Piggin
2020-07-16 10:03                   ` Nicholas Piggin
2020-07-16 11:00                   ` peterz
2020-07-16 11:00                     ` peterz
2020-07-16 15:34                     ` Mathieu Desnoyers
2020-07-16 15:34                       ` Mathieu Desnoyers
2020-07-16 15:34                       ` Mathieu Desnoyers
2020-07-16 23:26                     ` Nicholas Piggin
2020-07-16 23:26                       ` Nicholas Piggin
2020-07-17 13:42                       ` Mathieu Desnoyers
2020-07-17 13:42                         ` Mathieu Desnoyers
2020-07-17 13:42                         ` Mathieu Desnoyers
2020-07-20  3:03                         ` Nicholas Piggin
2020-07-20  3:03                           ` Nicholas Piggin
2020-07-20 16:46                           ` Mathieu Desnoyers
2020-07-20 16:46                             ` Mathieu Desnoyers
2020-07-20 16:46                             ` Mathieu Desnoyers
2020-07-21 10:04                             ` Nicholas Piggin
2020-07-21 10:04                               ` Nicholas Piggin
2020-07-21 13:11                               ` Mathieu Desnoyers
2020-07-21 13:11                                 ` Mathieu Desnoyers
2020-07-21 13:11                                 ` Mathieu Desnoyers
2020-07-21 14:30                                 ` Nicholas Piggin
2020-07-21 14:30                                   ` Nicholas Piggin
2020-07-21 15:06                               ` peterz
2020-07-21 15:06                                 ` peterz
2020-07-21 15:15                                 ` Mathieu Desnoyers
2020-07-21 15:15                                   ` Mathieu Desnoyers
2020-07-21 15:15                                   ` Mathieu Desnoyers
2020-07-21 15:19                                   ` Peter Zijlstra
2020-07-21 15:19                                     ` Peter Zijlstra
2020-07-21 15:22                                     ` Mathieu Desnoyers
2020-07-21 15:22                                       ` Mathieu Desnoyers
2020-07-21 15:22                                       ` Mathieu Desnoyers
2020-07-10  1:56 ` [RFC PATCH 5/7] lazy tlb: introduce lazy mm refcount helper functions Nicholas Piggin
2020-07-10  1:56   ` Nicholas Piggin
2020-07-10  9:48   ` Peter Zijlstra
2020-07-10  9:48     ` Peter Zijlstra
2020-07-10  1:56 ` [RFC PATCH 6/7] lazy tlb: allow lazy tlb mm switching to be configurable Nicholas Piggin
2020-07-10  1:56   ` Nicholas Piggin
2020-07-10  1:56 ` [RFC PATCH 7/7] lazy tlb: shoot lazies, a non-refcounting lazy tlb option Nicholas Piggin
2020-07-10  1:56   ` Nicholas Piggin
2020-07-10  9:35   ` Peter Zijlstra
2020-07-10  9:35     ` Peter Zijlstra
2020-07-13  4:58     ` Nicholas Piggin
2020-07-13  4:58       ` Nicholas Piggin
2020-07-13 15:59   ` Andy Lutomirski
2020-07-13 15:59     ` Andy Lutomirski
2020-07-13 15:59     ` Andy Lutomirski
2020-07-13 16:48     ` Nicholas Piggin
2020-07-13 16:48       ` Nicholas Piggin
2020-07-13 18:18       ` Andy Lutomirski
2020-07-13 18:18         ` Andy Lutomirski
2020-07-14  5:04         ` Nicholas Piggin
2020-07-14  5:04           ` Nicholas Piggin
2020-07-14  6:31           ` Nicholas Piggin
2020-07-14  6:31             ` Nicholas Piggin
2020-07-14 12:46             ` Andy Lutomirski
2020-07-14 12:46               ` Andy Lutomirski
2020-07-14 13:23               ` Peter Zijlstra
2020-07-14 13:23                 ` Peter Zijlstra
2020-07-16  2:26               ` Nicholas Piggin
2020-07-16  2:26                 ` Nicholas Piggin
2020-07-16  2:35               ` Nicholas Piggin
2020-07-16  2:35                 ` Nicholas Piggin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200710094201.GZ4800@hirez.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=anton@ozlabs.org \
    --cc=arnd@arndb.de \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=npiggin@gmail.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.