summaryrefslogtreecommitdiffstats
path: root/kernel/gsp_phys_booter.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-15 16:33:36 -0500
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-11-15 16:33:36 -0500
commit6aeb20c735a4ff49f86c8a63df700af6108cad7f (patch)
treeb92e10fef63c8dccef3048cde7e314cd33019e52 /kernel/gsp_phys_booter.h
parenta03a68ea5d8c7d81026160db9ee1c27c6f25df14 (diff)
downloadopen-iov-6aeb20c735a4ff49f86c8a63df700af6108cad7f.tar.gz
open-iov-6aeb20c735a4ff49f86c8a63df700af6108cad7f.zip
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).
Diffstat (limited to 'kernel/gsp_phys_booter.h')
-rw-r--r--kernel/gsp_phys_booter.h2
1 files changed, 2 insertions, 0 deletions
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);