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