diff options
| -rw-r--r-- | kernel/gsp_sema_service.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/kernel/gsp_sema_service.c b/kernel/gsp_sema_service.c index c002c50..904ac65 100644 --- a/kernel/gsp_sema_service.c +++ b/kernel/gsp_sema_service.c @@ -1962,15 +1962,8 @@ static void svc_ipin_alt_store(u64 va, u64 pa, int ap) static int svc_ipin_lookup(u64 va, u64 *pa, int *ap) { - int rc = pin_lookup_tab(svc.ipin, SVC_IPIN_SLOTS, SVC_IPIN_PROBE, va, pa, - ap, false); - - if (svc_pool_sem_va(va) && gsp_sema_dbg && svc.counter_rel_dbg < 256) { - svc.counter_rel_dbg++; - pr_info("vgsp-sema: ipin-lookup va=0x%llx rc=%d pa=0x%llx\n", - va, rc, rc ? 0 : *pa); - } - return rc; + return pin_lookup_tab(svc.ipin, SVC_IPIN_SLOTS, SVC_IPIN_PROBE, va, pa, + ap, false); } static void svc_ipin_store(u64 va, u64 pa, int ap) @@ -1998,10 +1991,6 @@ static void svc_ipin_store(u64 va, u64 pa, int ap) */ if (svc_pool_sem_va(va)) svc_pool_pa_forget(va); - if (svc_pool_sem_va(va) && gsp_sema_dbg && svc.counter_rel_dbg < 256) { - svc.counter_rel_dbg++; - pr_info("vgsp-sema: ipin-store va=0x%llx pa=0x%llx\n", va, pa); - } } /* Any pinned translation: injected truth first, then self-discovered pins. */ @@ -6703,6 +6692,14 @@ static void svc_session_flush(void) svc.counter_noslot_dbg = 0; svc.sem256_log = 0; svc.xfer_raw_log = 0; + /* + * The push decode budget (`sema-push` lines) is per-session too: the + * first client of a boot otherwise spends it and the next session's + * release decode is invisible in exactly the runs that need diagnosis + * (the second client's missing release was undecodable in r25 because + * entry_log was already exhausted by the first client). + */ + svc.entry_log = 0; memset(svc_hot, 0, sizeof(svc_hot)); memset(svc_retry_q, 0, sizeof(svc_retry_q)); memset(svc_pool_pa, 0, sizeof(svc_pool_pa)); |
