summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/gsp_sema_service.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/gsp_sema_service.c b/kernel/gsp_sema_service.c
index ef89a52..f803309 100644
--- a/kernel/gsp_sema_service.c
+++ b/kernel/gsp_sema_service.c
@@ -8419,8 +8419,14 @@ static bool svc_gr_cand_push_seen(u64 push_va)
* bytes): the release payload inside every push makes the hash unique per
* push, so a new client's identical-looking write never collides. Session
* scoped (cleared by svc_session_flush). Service-thread only.
+ *
+ * Sizing (r398): the ring must outlive the gap between a push's first
+ * execution and its next re-decode. The observed failing case had 76
+ * inline writes between the two, which evicted a 64-slot table and let
+ * the memset re-run; 8192 slots (256 KB) gives a ~100x margin over the
+ * busiest observed burst.
*/
-#define SVC_INLINE_ONCE_SLOTS 64
+#define SVC_INLINE_ONCE_SLOTS 8192
static struct {
u64 push_va;
u64 hash;