From a393ddf66bc81e64b34361ddd596e5e21441a745 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Rasmusson Date: Wed, 30 Sep 2026 11:19:09 -0400 Subject: sema-svc: targeted 256-byte op + compute-channel release-block tracing (the DtoH op is still invisible) --- kernel/gsp_sema_service.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/kernel/gsp_sema_service.c b/kernel/gsp_sema_service.c index 4ecfe14..8b5f4af 100644 --- a/kernel/gsp_sema_service.c +++ b/kernel/gsp_sema_service.c @@ -353,6 +353,7 @@ struct sema_svc { u64 memsets_fail; u64 ring_ops; /* op runs from ring-decoded pushes */ u64 lda_log; /* LAUNCH_DMA inventory budget */ + u64 sem256_log; /* 256-byte op trace budget */ u64 copy_watch_log; /* sema_copy_watch log budget */ u64 copy_pat_log; /* sema_copy_pat log budget */ u64 copy_dst_log; /* sema_copy_dst log budget */ @@ -2303,6 +2304,13 @@ static void svc_run_ops(struct nv_vgpu_device *vgpu, struct svc_memset_op *ops, svc.memsets_nomap++; else svc.memsets_fail++; + if (m->bytes == 256 && svc.sem256_log < 64) { + svc.sem256_log++; + pr_info("sema-256: type=%u dst=0x%llx src=0x%llx bytes=%llu rc=%d h=0x%x done=%llu nomap=%llu fail=%llu\n", + m->type, m->dst, m->src, m->bytes, rc, ch_h, + svc.memsets_done, svc.memsets_nomap, + svc.memsets_fail); + } if ((rc == 0 && svc.memsets_done <= gsp_sema_ops_log) || (rc != 0 && svc.memsets_fail + svc.memsets_nomap <= 64)) pr_info("sema-svc: %s dst=0x%llx value=0x%llx elem=%u count=%u bytes=%llu phys=%u ap=%u src=0x%llx srcphys=%u srcap=%u rc=%d h=0x%x\n", @@ -3162,6 +3170,14 @@ static void svc_decode_stream(struct nv_vgpu_device *vgpu, const u8 *buf, * only the copy itself. */ if (allow_ops && n_ops && !gsp_sema_skip_ops) { + if (ch->engine_type == 0 && + svc.sem256_log < 64) { + svc.sem256_log++; + pr_info("sema-sem0: h=0x%x va=0x%llx allow=%u n_ops=%u skip=%u\n", + ch->h_object, sem_va, + allow_ops, n_ops, + gsp_sema_skip_ops); + } svc_run_ops(vgpu, ops, n_ops, ch->h_object); svc.ring_ops++; ops_runs++; -- cgit v1.2.3