summaryrefslogtreecommitdiffstats
path: root/kernel/main.c
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-16 22:03:28 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-16 22:03:28 -0400
commit419615dc4e1fa5e9c2b4e0d15a0df94ca163a09b (patch)
treea4370ead6c98c6e19bb38094d382ec5546b818d5 /kernel/main.c
parent6f445664a1c94b3a00b9cf8a5d5572979610642a (diff)
downloadopen-iov-419615dc4e1fa5e9c2b4e0d15a0df94ca163a09b.tar.gz
open-iov-419615dc4e1fa5e9c2b4e0d15a0df94ca163a09b.zip
vgsp: m169 stale device-destination guard (device-dst copies translated only by walk/RAM-scan are held until a pin confirms; r172 streams2_diag stream-1 H2D wrote through a stale walk entry while the launch read the true page) + session-scope the op-trace budget + bigcopy witness covers device-dst copies >=64KB
Diffstat (limited to 'kernel/main.c')
-rw-r--r--kernel/main.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/kernel/main.c b/kernel/main.c
index c4e4792..d2dc57a 100644
--- a/kernel/main.c
+++ b/kernel/main.c
@@ -2789,6 +2789,15 @@ module_param_named(sema_pool_hold_fresh, gsp_sema_pool_hold_fresh, bool, 0644);
MODULE_PARM_DESC(sema_pool_hold_fresh, "apply pool releases at fresh-pin time instead of registration+5s (default 1)");
/*
+ * m169 (AGENT-F R1): hold device-destination copies translated only by a
+ * page-directory walk until a pin confirms (default on). A wrong-but-valid
+ * stale table entry silently writes the wrong vidmem page; the hold lets
+ * the m163 retry path re-resolve with pins.
+ */
+module_param_named(sema_copy_dst_pin_guard, gsp_sema_copy_dst_pin_guard, bool, 0644);
+MODULE_PARM_DESC(sema_copy_dst_pin_guard, "hold device-dst copies without a pin-resolved translation (default 1)");
+
+/*
* Debug: inject a verified {GPU VA -> guest PA} translation into the
* semaphore service (used when the client's mapping cannot be discovered
* from guest structures):