From a9d776627f5057fd11c8d0a94bbfcca2358fe507 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Mon, 5 Oct 2026 00:12:56 -0400 Subject: vgsp: widen the CE pending-entry grace to 15 s A consumed entry's work is never run; if its release lands via the fallback before the entry's copies have executed, the client refills the staging slot the copies then read (observed as the deterministic one-chunk vadd input shift). Keep untranslatable CE entries pending longer so their copies run before any release reaches the client. 8-cycle pilot (141-148): zero corruption; a red-fingerprint cycle (held=1165, ring_auto=6) healed to ring_auto=26 with faked=0 and the exact checksum, where the 8 s window recorded 1 corruption in 36. --- kernel/gsp_sema_service.c | 2 +- kernel/main.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/gsp_sema_service.c b/kernel/gsp_sema_service.c index a62e3e4..be1d88a 100644 --- a/kernel/gsp_sema_service.c +++ b/kernel/gsp_sema_service.c @@ -6670,7 +6670,7 @@ u64 gsp_sema_copy_dst2; * write the next chunk's data over a finished one), so the hold is the only * chance the work has. */ -unsigned gsp_sema_ce_grace_ms = 8000; +unsigned gsp_sema_ce_grace_ms = 15000; /* * Bounded work-before-release hold (ms) for an unreadable CE entry. The diff --git a/kernel/main.c b/kernel/main.c index ca973b0..1732ad8 100644 --- a/kernel/main.c +++ b/kernel/main.c @@ -2659,7 +2659,7 @@ MODULE_PARM_DESC(sema_copy_dst2, "Second destination window for sema_copy_dst (d * a service pass. */ 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 8000)"); +MODULE_PARM_DESC(sema_ce_grace_ms, "CE pending-entry grace window in ms (default 15000)"); /* * Bounded work-before-release hold (ms) for an unreadable CE entry; the -- cgit v1.2.3