summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/gsp_sema_service.c23
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));