Thread (14 messages) 14 messages, 5 authors, 2017-08-01

Re: linux-next: manual merge of the rcu tree with the tip tree

From: Paul E. McKenney <hidden>
Date: 2017-08-01 21:37:00
Also in: lkml

On Tue, Aug 01, 2017 at 07:15:40AM -0700, Andy Lutomirski wrote:
On Tue, Aug 1, 2017 at 7:02 AM, Mathieu Desnoyers
[off-list ref] wrote:
quoted
/*
 * The full memory barrier implied by mm_cpumask update operations
 * is required by the membarrier system call.
 */

What we want to order here is:

prev userspace memory accesses
schedule
  <full mb> (it's already there) [A]
  update to rq->curr changing the rq->curr->mm value
  <full mb> (provided by mm_cpumask updates in switch_mm on x86) [B]
If I understand this right, the issue with relying on CR3 writes is
that the target CPU could switch to a kernel thread and back to the
same user mm white the membarrier caller is reading its mm, right?
The thing that got my attention was your patch removing the load_cr3().
Ah, looking closer, it appears that you have not eliminated the CR3
load, but just renamed it to write_cr3().  So if there is always still
a CR3 load, you are right, I should be able to simply move the comment.
Or let you insert the comment into your patch?

So there is still always a CR3 load, correct?  (Hey, I thought that
maybe x86 was moving to ASIDs or some such.)

							Thanx, Paul
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help