git: c1e21468213e - main - pmap_kextract(9): some additions
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 06 Nov 2023 16:55:14 UTC
The branch main has been updated by mhorne:
URL: https://cgit.FreeBSD.org/src/commit/?id=c1e21468213e3ae35c5302f94472f1d996d530cd
commit c1e21468213e3ae35c5302f94472f1d996d530cd
Author: Mitchell Horne <mhorne@FreeBSD.org>
AuthorDate: 2023-11-06 16:54:18 +0000
Commit: Mitchell Horne <mhorne@FreeBSD.org>
CommitDate: 2023-11-06 16:54:45 +0000
pmap_kextract(9): some additions
Mainly, provide a little more detail on the caller's responsibilities.
Suggested by: kib, jhb
Reviewed by: kib, markj
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D42458
---
share/man/man9/pmap_kextract.9 | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/share/man/man9/pmap_kextract.9 b/share/man/man9/pmap_kextract.9
index 40008a1bc96c..a93bbc70b351 100644
--- a/share/man/man9/pmap_kextract.9
+++ b/share/man/man9/pmap_kextract.9
@@ -31,9 +31,21 @@ The
function retrieves the underlying physical memory address corresponding to the
given kernel virtual address
.Fa va .
-The value of
+The caller is responsible for ensuring that
.Fa va
-must belong to a valid mapping in the kernel address space.
+belongs to a valid mapping in the kernel address space.
+The returned physical address is only meaningful as long as the mapping remains
+stable, so the caller must also have some knowledge or guarantee of the
+mapping's lifetime.
+For example, it is invalid to call
+.Fn pmap_kextract
+with the address of a malloc'd object while there is a possibility for that
+object to be freed concurrently.
+.Pp
+Unlike
+.Xr pmap_extract 9 ,
+.Fn pmap_kextract
+is safe to be called from any context; it has no internal locking or sleep.
.Pp
.Fn vtophys
is an alias for
@@ -42,7 +54,7 @@ and behaves identically.
.Sh RETURN VALUES
The
.Fn pmap_kextract
-function returns the address of physical memory mapped at the kernel
+function returns the physical address of memory mapped at the kernel
virtual address
.Fa va .
.Pp