From 6aeb20c735a4ff49f86c8a63df700af6108cad7f Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Sun, 15 Nov 2026 16:33:36 -0500 Subject: vgsp: eng64 - chain the release behind the pack carrier and name a stalled carrier's gate c779: the pack-continuation carrier completed the pack (MME-CARRY-COMPLETE gen=4 off=2799/2799) and armed the release (MME-CARRY-ARM mode=release), but its launch poll held the single forwarding slot for 2801 ms; the armed release then deferred request-inflight until the beef channel unregistered at +2.2 s, so the release ended in MME-CARRY-HOLD reason=no-channel. - svc_fwd_gr_work: after a successful synthetic pack carrier, wait out the release grace in the same slot, claim it and run the release work directly (chained MME-CARRY-FIRE mode=release ... receipt). Gate: sema_gl_mme_release_chain (default 1; release carrier still default 0). - pump pack-carry block: an armed due carrier that cannot go out now names its blocker (MME-CARRY-WAIT reason=no-channel/client-candidate/ request-inflight/fe-defer), so the c781-class silent stall is visible. - booter: gsp_phys_gr_mme_release_waiting()/chain_enabled() helpers. c783-c785 (a03a68ea build) were all shallow (author=0, no MME window). --- kernel/gsp_phys_booter.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'kernel/gsp_phys_booter.h') diff --git a/kernel/gsp_phys_booter.h b/kernel/gsp_phys_booter.h index 21eb1fc..30aef8f 100644 --- a/kernel/gsp_phys_booter.h +++ b/kernel/gsp_phys_booter.h @@ -596,6 +596,8 @@ void gsp_phys_gr_mme_carry_failed(int rc); * through the normal fill/build path with the CALL runs released. */ bool gsp_phys_gr_mme_release_peek(u32 *h_object); +bool gsp_phys_gr_mme_release_waiting(void); +bool gsp_phys_gr_mme_release_chain_enabled(void); bool gsp_phys_gr_mme_release_take(u32 h_object, u32 *held, u32 *win); void gsp_phys_gr_mme_release_rearm(void); bool gsp_phys_gr_mme_release_is_arming(u32 h, u64 push); -- cgit v1.2.3