aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2026-01-02 09:31:54 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2026-01-13 14:03:14 +0000
commit7361727d4584b5e303183c836497ae2754ce0e53 (patch)
tree8a0e9f2789eb1ebccd57015e386ca81a6019a4b3
parentc1d7c957895e3cd3ffa6669352bb809a8fc5f78e (diff)
swap_release_by_cred*(): give some additional info on panics due to underflow
Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D54572
-rw-r--r--sys/vm/swap_pager.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c
index ab95bde34ceb..e0bdca07ff0f 100644
--- a/sys/vm/swap_pager.c
+++ b/sys/vm/swap_pager.c
@@ -239,7 +239,8 @@ swap_release_by_cred_rlimit(u_long pdecr, struct ucred *cred)
#ifdef INVARIANTS
prev = atomic_fetchadd_long(&uip->ui_vmsize, -pdecr);
KASSERT(prev >= pdecr,
- ("negative vmsize for uid %d\n", uip->ui_uid));
+ ("negative vmsize for uid %d, prev %#jx decr %#jx\n",
+ uip->ui_uid, (uintmax_t)prev, (uintmax_t)pdecr));
#else
atomic_subtract_long(&uip->ui_vmsize, pdecr);
#endif
@@ -373,7 +374,8 @@ swap_release_by_cred(vm_ooffset_t decr, struct ucred *cred)
pdecr = atop(decr);
#ifdef INVARIANTS
prev = atomic_fetchadd_long(&swap_reserved, -pdecr);
- KASSERT(prev >= pdecr, ("swap_reserved < decr"));
+ KASSERT(prev >= pdecr, ("swap_reserved %#jx < decr %#jx",
+ (uintmax_t)prev, (uintmax_t)pdecr));
#else
atomic_subtract_long(&swap_reserved, pdecr);
#endif