diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-15 16:33:36 -0500 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-15 16:33:36 -0500 |
| commit | 6aeb20c735a4ff49f86c8a63df700af6108cad7f (patch) | |
| tree | b92e10fef63c8dccef3048cde7e314cd33019e52 /kernel/gsp_phys_booter.h | |
| parent | a03a68ea5d8c7d81026160db9ee1c27c6f25df14 (diff) | |
| download | open-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.h | 2 |
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); |
