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