From 1f0df0c62cc6786de9c230f6c4196e14653a30e2 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Sat, 14 Nov 2026 14:17:29 -0500 Subject: vgsp: per-channel MME pack completion accounting + rearm release + context-reset invalidation (eng40, validation pending) After the multi-part beef pack completes (2799/2799; keep_gen=1 works), the prelude generation drifts and the pack branch refuses re-emission (poff==maxa), so calls stay held forever (pcv=0, shadow draws 0, wrote=0). This adds: (1) per-channel contiguous-load accounting + pack_done_h so the completion is remembered for the loaded channel; (2) an MME-PACK-REARM call release when a completed pack's channel launches again; (3) gsp_phys_gr_mme_chan_ctx_reset(h) invalidation on context wipes/channel re-registers (the client recycles the beef channel between pushes, c496), shown firing safely. Validation: the fix was not yet observed completing on a green window with a same-incarnation draw; committed for reproducibility per house style. --- kernel/gsp_phys_booter.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'kernel/gsp_phys_booter.h') diff --git a/kernel/gsp_phys_booter.h b/kernel/gsp_phys_booter.h index f821a85..92c8e69 100644 --- a/kernel/gsp_phys_booter.h +++ b/kernel/gsp_phys_booter.h @@ -714,4 +714,9 @@ int gsp_phys_boot_rm_unload(void __iomem *bar0); int gsp_phys_boot_debugfs_init(void); void gsp_phys_boot_debugfs_fini(void); +/* eng40: invalidate the per-channel MME pack-completion state on a channel + * registration (fresh engine context); no-op unless the pack_keep_gen + + * golden_force A/B knobs are on. */ +void gsp_phys_gr_mme_chan_ctx_reset(u32 h); + #endif /* GSP_PHYS_BOOTER_H */ -- cgit v1.2.3