diff options
Diffstat (limited to 'kernel/gsp_sema_service.c')
| -rw-r--r-- | kernel/gsp_sema_service.c | 8 |
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; |
