diff options
Diffstat (limited to 'kernel/gsp_sema_service.c')
| -rw-r--r-- | kernel/gsp_sema_service.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/kernel/gsp_sema_service.c b/kernel/gsp_sema_service.c index 8f194e9..29d28d6 100644 --- a/kernel/gsp_sema_service.c +++ b/kernel/gsp_sema_service.c @@ -14279,11 +14279,16 @@ static void svc_mme_census(const u8 *buf, u32 len, u64 push_va, u32 h_object) * (svc_mme_ir_cov, instruction granularity) records exactly which IR * instructions the REPLAY holds so the launch builder can stub every * called slot whose entry is outside that set (see - * gsp_sema_mme_ir_covered). The buffer cap itself stays 1024 words: the - * launch method block is 2048 words and must also carry the window. - */ -#define SVC_MME_PRELUDE_WORDS 1024u -#define SVC_MME_PRELUDE_SIGS 512u + * gsp_sema_mme_ir_covered). SESSION 153-CONTINUED-77: the buffer cap + * rose 1024 -> 2048 -> 3584 words (with the launch method block raised + * to 4096 words / four pushbuffer pages) because the fully captured + * client prelude exceeded each cap and was silently truncated; + * truncation leaves called slots outside the coverage set and keeps + * them stubbed. 3584 keeps the worst-case block (cap + 448-word chunk + * + init + SA stubs) inside 4096. + */ +#define SVC_MME_PRELUDE_WORDS 3584u +#define SVC_MME_PRELUDE_SIGS 2048u static u32 svc_mme_prelude_buf[SVC_MME_PRELUDE_WORDS]; static u32 svc_mme_prelude_n; static u32 svc_mme_prelude_gen; |
