From d2848c109761e3ccde81a742f4569730254031f8 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Wed, 7 Oct 2026 15:05:08 -0400 Subject: vgsp: m106 - pre-install the data PT window pool in stage 3 (pre-commit) Post-commit UPDATE_PDE_2 installs are accepted (status 0x0) but ineffective (m94's scratch windows, m101-m105's reloc windows: the SM never resolves them), while the stage-3 ctx-window installs are honoured. Add a fixed 32-window pool at GSP_PHYS_RMCALL_VA_GR_DATA_BASE (0x100000000 + k<<21, inside the server-managed region), each backed by a module PT page installed through UPDATE_PDE_2 during stage 3; the engine data map then only writes leaf PTEs into those fresh PT pages at launch (the P6b-proven 'direct leaf write into a walker-installed fresh table' pattern). The mail injection uses the reserved last window (k=31); service data windows cap at 31 and use the same fixed layout. --- kernel/gsp_sema_service.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'kernel/gsp_sema_service.c') diff --git a/kernel/gsp_sema_service.c b/kernel/gsp_sema_service.c index dfc9922..844d2c9 100644 --- a/kernel/gsp_sema_service.c +++ b/kernel/gsp_sema_service.c @@ -3263,7 +3263,7 @@ struct svc_gr_data { * managed region at an affine-relocated VA and the pointers in the bank * pages are rewritten to match. */ -#define SVC_GR_DATA_WINS_MAX 64 +#define SVC_GR_DATA_WINS_MAX 31 struct svc_gr_data_win { u64 va_base; /* guest window base (2 MB aligned) */ u64 reloc_base; /* relocated window base */ -- cgit v1.2.3