diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-24 18:26:50 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-24 18:26:50 -0400 |
| commit | 52cc57e878711883054c521c222ef97e74972e3b (patch) | |
| tree | ca559da042efa16a1d1d9d96eda8484a8ca62f6d | |
| parent | 4fa7c63b318a5fb7521d1ac82a14a64f666ab4c0 (diff) | |
| download | open-iov-52cc57e878711883054c521c222ef97e74972e3b.tar.gz open-iov-52cc57e878711883054c521c222ef97e74972e3b.zip | |
vgsp-sema r633b diag: log the hold-engage record set (nrel/va0/pay0/gr) and raise the non-pool device-VA release-write log budget 512 -> 4096/boot - the r633b battery's streams2 spin (userspace, launches completed, QMD releases applied) needs the held records and the release target PA visible; the 512-line budget was exhausted by mid-battery and hid every later application
| -rw-r--r-- | kernel/gsp_sema_service.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/kernel/gsp_sema_service.c b/kernel/gsp_sema_service.c index 9fa83f8..ec3764f 100644 --- a/kernel/gsp_sema_service.c +++ b/kernel/gsp_sema_service.c @@ -4270,7 +4270,7 @@ static int svc_sem_write(struct nv_vgpu_device *vgpu, u32 h, u64 va, u32 val) */ if (((va >= 0x79240000000ULL && va < 0x79260000000ULL && svc.sem_sw_log < 8192) || - (va >= 0x200000000ULL && !is_pool && sem_sw_dev_log < 512))) { + (va >= 0x200000000ULL && !is_pool && sem_sw_dev_log < 4096))) { if (va >= 0x79240000000ULL && va < 0x79260000000ULL) svc.sem_sw_log++; else @@ -18710,6 +18710,19 @@ static void svc_fwd_hold_engage(struct nv_vgpu_device *vgpu, svc_fwd_hold.relay_armed = svc_fwd_req.relay; svc_fwd_hold.relay_index = svc_fwd_req.relay_index; svc_fwd_hold.fault_delivered = false; + /* + * r633 diag: the held record set, so a later release-delivery gap + * (the streams2 spin class) can be told apart from a hold that + * engaged empty / with another entry's records. Bounded. + */ + if (svc_grpark_log < 64) { + svc_grpark_log++; + pr_info("vgsp-work: hold engage h=0x%x entry=%u nrel=%u va0=0x%llx pay0=%u gr=%d\n", + ch->h_object, entry_idx, n, + n ? svc_fwd_hold.rel[0].va : 0ull, + n ? svc_fwd_hold.rel[0].payload : 0u, + svc_fwd_req.gr ? 1 : 0); + } /* r420: a fresh hold starts with no WEDGE-QUIET deferral. */ svc_fwd_hold.paused_until = 0; svc_fwd_hold.pause_logged = false; |
