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
This commit is contained in:
Konstantin Belousov
2026-01-02 11:31:54 +02:00
parent c1d7c95789
commit 7361727d45
+4 -2
View File
@@ -239,7 +239,8 @@ swap_release_by_cred_rlimit(u_long pdecr, struct ucred *cred)
#ifdef INVARIANTS #ifdef INVARIANTS
prev = atomic_fetchadd_long(&uip->ui_vmsize, -pdecr); prev = atomic_fetchadd_long(&uip->ui_vmsize, -pdecr);
KASSERT(prev >= 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 #else
atomic_subtract_long(&uip->ui_vmsize, pdecr); atomic_subtract_long(&uip->ui_vmsize, pdecr);
#endif #endif
@@ -373,7 +374,8 @@ swap_release_by_cred(vm_ooffset_t decr, struct ucred *cred)
pdecr = atop(decr); pdecr = atop(decr);
#ifdef INVARIANTS #ifdef INVARIANTS
prev = atomic_fetchadd_long(&swap_reserved, -pdecr); 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 #else
atomic_subtract_long(&swap_reserved, pdecr); atomic_subtract_long(&swap_reserved, pdecr);
#endif #endif