Module Name:    src
Committed By:   riastradh
Date:           Sat Apr  9 12:07:29 UTC 2022

Modified Files:
        src/common/lib/libc/arch/i386/atomic: atomic.S
        src/common/lib/libc/arch/x86_64/atomic: atomic.S

Log Message:
x86: Add a note on membar_sync and mfence.


To generate a diff of this commit:
cvs rdiff -u -r1.32 -r1.33 src/common/lib/libc/arch/i386/atomic/atomic.S
cvs rdiff -u -r1.25 -r1.26 src/common/lib/libc/arch/x86_64/atomic/atomic.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/common/lib/libc/arch/i386/atomic/atomic.S
diff -u src/common/lib/libc/arch/i386/atomic/atomic.S:1.32 src/common/lib/libc/arch/i386/atomic/atomic.S:1.33
--- src/common/lib/libc/arch/i386/atomic/atomic.S:1.32	Sat Apr  9 12:07:17 2022
+++ src/common/lib/libc/arch/i386/atomic/atomic.S	Sat Apr  9 12:07:29 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic.S,v 1.32 2022/04/09 12:07:17 riastradh Exp $	*/
+/*	$NetBSD: atomic.S,v 1.33 2022/04/09 12:07:29 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -197,6 +197,12 @@ ENTRY(_membar_producer)
 END(_membar_producer)
 
 ENTRY(_membar_sync)
+	/*
+	 * MFENCE, or a serializing instruction like a locked addq,
+	 * is necessary to order store-before-load.  Every other
+	 * ordering -- load-before-anything, anything-before-store --
+	 * is already guaranteed without explicit barriers.
+	 */
 	HOTPATCH_SSE2_MFENCE
 	/* 7 bytes of instructions */
 	LOCK

Index: src/common/lib/libc/arch/x86_64/atomic/atomic.S
diff -u src/common/lib/libc/arch/x86_64/atomic/atomic.S:1.25 src/common/lib/libc/arch/x86_64/atomic/atomic.S:1.26
--- src/common/lib/libc/arch/x86_64/atomic/atomic.S:1.25	Sat Apr  9 12:07:17 2022
+++ src/common/lib/libc/arch/x86_64/atomic/atomic.S	Sat Apr  9 12:07:29 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic.S,v 1.25 2022/04/09 12:07:17 riastradh Exp $	*/
+/*	$NetBSD: atomic.S,v 1.26 2022/04/09 12:07:29 riastradh Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -272,6 +272,12 @@ ENTRY(_membar_producer)
 END(_membar_producer)
 
 ENTRY(_membar_sync)
+	/*
+	 * MFENCE, or a serializing instruction like a locked addq,
+	 * is necessary to order store-before-load.  Every other
+	 * ordering -- load-before-anything, anything-before-store --
+	 * is already guaranteed without explicit barriers.
+	 */
 	HOTPATCH_SSE2_MFENCE
 	/* 8 bytes of instructions */
 	LOCK

Reply via email to