Module Name:    src
Committed By:   riastradh
Date:           Sat Feb 12 01:21:11 UTC 2022

Modified Files:
        src/share/man/man9: ipi.9

Log Message:
ipi(9): Document memory ordering guarantees.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/share/man/man9/ipi.9

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

Modified files:

Index: src/share/man/man9/ipi.9
diff -u src/share/man/man9/ipi.9:1.5 src/share/man/man9/ipi.9:1.6
--- src/share/man/man9/ipi.9:1.5	Wed Sep  2 19:04:05 2020
+++ src/share/man/man9/ipi.9	Sat Feb 12 01:21:11 2022
@@ -1,4 +1,4 @@
-.\" $NetBSD: ipi.9,v 1.5 2020/09/02 19:04:05 riastradh Exp $
+.\" $NetBSD: ipi.9,v 1.6 2022/02/12 01:21:11 riastradh Exp $
 .\"
 .\" Copyright (c) 2014, 2019 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -170,6 +170,23 @@ All synchronous IPI invocations must be 
 function) before the IPI message structure can be destroyed or new
 cross-call requests can be performed.
 .\" -----
+.Sh MEMORY ORDER
+All memory operations that happen before triggering an IPI, via
+.Fn ipi_trigger ,
+.Fn ipi_trigger_multi ,
+.Fn ipi_trigger_broadcast ,
+.Fn ipi_unicast ,
+.Fn ipi_multicast ,
+or
+.Fn ipi_broadcast ,
+also happen before any memory operations in the IPI handler function on
+the remote CPU.
+.Pp
+For synchronous IPIs, all memory operations that happen before the IPI
+handler function has returned on the remote CPU also happen before
+.Fn ipi_wait
+returns on the waiting CPU.
+.\" -----
 .Sh NOTES
 Functions being called must be lightweight.
 They run at

Reply via email to