summaryrefslogtreecommitdiffstats
path: root/kernel/main.c
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-24 04:17:32 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-24 04:17:32 -0400
commite9f5cfb561f7dc94b610e3130dfee9f3325d7d6d (patch)
tree8030cc1ee918eddb19bceec9f0f3c10b6465cba8 /kernel/main.c
parente7101aae4639909996a826653e0bab089747ffa1 (diff)
downloadopen-iov-e9f5cfb561f7dc94b610e3130dfee9f3325d7d6d.tar.gz
open-iov-e9f5cfb561f7dc94b610e3130dfee9f3325d7d6d.zip
vgsp-gr r598 diag: peek the ring slots past GP_PUT at the launch decision
The r568 lever is the driver's ring WRITE pointer, not the GPFIFO put: the b copy entry exists in the ring before the client publishes GP_PUT. Add a bounded diagnostic (gsp_phys_gr_peek) that, when a channel reads as drained, dumps up to four slots past last_get with {va,len} and whether the slot already executed that exact entry - so the next fix can be grounded in what is actually written ahead of the put.
Diffstat (limited to 'kernel/main.c')
-rw-r--r--kernel/main.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/main.c b/kernel/main.c
index d821762..81bae08 100644
--- a/kernel/main.c
+++ b/kernel/main.c
@@ -2752,6 +2752,10 @@ MODULE_PARM_DESC(sema_copy_dst2, "Second destination window for sema_copy_dst (d
* the release the client synchronizes on; the translation usually lands within
* a service pass.
*/
+module_param_named(gsp_phys_gr_peek, gsp_phys_gr_peek, uint, 0644);
+MODULE_PARM_DESC(gsp_phys_gr_peek,
+ "Peek the ring slots past GP_PUT at each GR launch decision (diagnostic, default 0)");
+
module_param_named(sema_ce_grace_ms, gsp_sema_ce_grace_ms, uint, 0644);
MODULE_PARM_DESC(sema_ce_grace_ms, "CE pending-entry grace window in ms (default 25000)");