From nobody Tue Apr 29 11:41:36 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1D7519z5tvF6; Tue, 29 Apr 2025 11:41:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1D1qJGz3wcZ; Tue, 29 Apr 2025 11:41:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926896; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XkcGAGHXDMBCTXuxWcRG+nlqf04G3g/c0Juo6L/SLbo=; b=qS7n/GIPON12KUiXA36majNVp73TEF8SvnRD1RI0n8apcZOFm+7ChUBjBdByP+jVgObwxb Z+L/KjqwrJnF/Wb4hdLz1pinbRHNtf6OYXXgM++w69h5Qo9gDSNWWg6FHWcARyjiBHFDqp 7+xSuTephT/SBoyaE4CjAzhPd0QoFLjpMv4BTJRvM4mADnH6aZ3rmkUADe5d18eDZbI0+x OU9DEd5CJayfBdTQmcQAtl057oN9EQFnENm/Y4apOsSTeruNTcA6xjvWW2lmYc1Ewl8abo Gprx9BzEluW+A8uSLWXRUBfKqDhgG7IT3EDVi9t7SZYrztiajIR3HGwr3/ZJTQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926896; a=rsa-sha256; cv=none; b=nFiAINOvLYS0bgK9+uIRvJtE5GPs7fv7fueMSGmlZToSoiyVGGWln1jOh0YUptNcWGAE3d R/XNOnAFxhkM+PxetV38pFU+smlx6XkCa4XsmoicDQga44IFdJVlwX9Z6JVPWHdVmbDovw Ri1YMhfS0zBUZIT2QSUnE3zckRwtOAajd3xdtNBdDkZsW9Sw4JIYbcTdPsrZhUylIOmoMl 8AWlzWeURPwK9QVnH1Y9mQ/eSb2KeC0JZY2zQkdkBtHwyPltFtDit20meHUCiGGhlAbgde Td61xJt3j5+4XHxo1ZTPxC2l6IWUc+vW67HzEsSZPEyV7zMTpSEXMGrL3MCKgg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926896; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XkcGAGHXDMBCTXuxWcRG+nlqf04G3g/c0Juo6L/SLbo=; b=ip00ek63suAtQiqL5wYrg1PPPGnlF/aG2O/GBbG7+Q31YGvPcb1+uvtmp6+oLKgznwoOCW n/h+dXlG9OjZlx2/VJQJaiyXlNlfjFAlztYz5fwhKdJAIWNm66qkrdwNQjw97TAq6w/fJG Ys83Te1WL8iYwP7gxJYu9iYftDBUP9PhGpiiqL4v3vAj8GUU40RhdtM83aghlcIDsOlJ4O EyE+iNozY8+3mfpUzWrBO3u2tUv4zf+AbrovLmqjek7BLk6yf9/Fx559X0+aMGXe1wKKBK p1RZPq2YU71BBirggdHe79U0O4xwV2tVWFpBnI+8aFc5SaDUEN51TTsRsm64rw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zmz1D1Hw7z3yS; Tue, 29 Apr 2025 11:41:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfahd045697; Tue, 29 Apr 2025 11:41:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfata045694; Tue, 29 Apr 2025 11:41:36 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:36 GMT Message-Id: <202504291141.53TBfata045694@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 95e956722a2e - stable/14 - mbuf: add mbuf information to KASSERTs List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 95e956722a2ea2d9254456ccf29a42cded71927c Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=95e956722a2ea2d9254456ccf29a42cded71927c commit 95e956722a2ea2d9254456ccf29a42cded71927c Author: Bjoern A. Zeeb AuthorDate: 2025-04-13 13:25:12 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:27 +0000 mbuf: add mbuf information to KASSERTs Be more consistent about printing the mbuf pointer in KASSERT messages. This massively helps debugging and we were already doing a good job at it. Also replace some handrolled KASSERTs with M_ASSERTPKTHDR() for fewer copies of the check logic. In m_align() move the msg into the KASSERT given after it was moved here in ed6a66ca6c206 the msg is only used in one place. Sponsored by: The FreeBSD Foundation Reviewed by: glebius, zlei Differential Revision: https://reviews.freebsd.org/D49817 (cherry picked from commit 22d5d61f91eb70ced6a010d9a1d60f0ff33fff2f) --- sys/sys/mbuf.h | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/sys/sys/mbuf.h b/sys/sys/mbuf.h index 941c907e903b..c17fc9dec9a4 100644 --- a/sys/sys/mbuf.h +++ b/sys/sys/mbuf.h @@ -1110,7 +1110,7 @@ static inline u_int m_extrefcnt(struct mbuf *m) { - KASSERT(m->m_flags & M_EXT, ("%s: M_EXT missing", __func__)); + KASSERT(m->m_flags & M_EXT, ("%s: M_EXT missing for %p", __func__, m)); return ((m->m_ext.ext_flags & EXT_FLAG_EMBREF) ? m->m_ext.ext_count : *m->m_ext.ext_cnt); @@ -1142,13 +1142,13 @@ m_extrefcnt(struct mbuf *m) /* Check if the supplied mbuf has a packet header, or else panic. */ #define M_ASSERTPKTHDR(m) \ KASSERT((m) != NULL && (m)->m_flags & M_PKTHDR, \ - ("%s: no mbuf packet header!", __func__)) + ("%s: no mbuf %p packet header!", __func__, (m))) /* Check if the supplied mbuf has no send tag, or else panic. */ #define M_ASSERT_NO_SND_TAG(m) \ KASSERT((m) != NULL && (m)->m_flags & M_PKTHDR && \ ((m)->m_pkthdr.csum_flags & CSUM_SND_TAG) == 0, \ - ("%s: receive mbuf has send tag!", __func__)) + ("%s: receive mbuf %p has send tag!", __func__, (m))) /* Check if mbuf is multipage. */ #define M_ASSERTEXTPG(m) \ @@ -1162,7 +1162,7 @@ m_extrefcnt(struct mbuf *m) */ #define M_ASSERTVALID(m) \ KASSERT((((struct mbuf *)m)->m_flags & 0) == 0, \ - ("%s: attempted use of a free mbuf!", __func__)) + ("%s: attempted use of a free mbuf %p!", __func__, (m))) /* Check whether any mbuf in the chain is unmapped. */ #ifdef INVARIANTS @@ -1207,12 +1207,9 @@ m_extrefcnt(struct mbuf *m) static __inline void m_align(struct mbuf *m, int len) { -#ifdef INVARIANTS - const char *msg = "%s: not a virgin mbuf"; -#endif int adjust; - - KASSERT(m->m_data == M_START(m), (msg, __func__)); + KASSERT(m->m_data == M_START(m), + ("%s: not a virgin mbuf %p", __func__, m)); adjust = M_SIZE(m) - len; m->m_data += adjust &~ (sizeof(long)-1); @@ -1530,14 +1527,16 @@ m_free(struct mbuf *m) static __inline int rt_m_getfib(struct mbuf *m) { - KASSERT(m->m_flags & M_PKTHDR , ("Attempt to get FIB from non header mbuf.")); + KASSERT(m->m_flags & M_PKTHDR, + ("%s: Attempt to get FIB from non header mbuf %p", __func__, m)); return (m->m_pkthdr.fibnum); } #define M_GETFIB(_m) rt_m_getfib(_m) #define M_SETFIB(_m, _fib) do { \ - KASSERT((_m)->m_flags & M_PKTHDR, ("Attempt to set FIB on non header mbuf.")); \ + KASSERT((_m)->m_flags & M_PKTHDR, \ + ("%s: Attempt to set FIB on non header mbuf %p", __func__, (_m))); \ ((_m)->m_pkthdr.fibnum) = (_fib); \ } while (0) @@ -1681,9 +1680,9 @@ static inline void mbuf_tstmp2timespec(struct mbuf *m, struct timespec *ts) { - KASSERT((m->m_flags & M_PKTHDR) != 0, ("mbuf %p no M_PKTHDR", m)); + M_ASSERTPKTHDR(m); KASSERT((m->m_flags & (M_TSTMP|M_TSTMP_LRO)) != 0, - ("mbuf %p no M_TSTMP or M_TSTMP_LRO", m)); + ("%s: mbuf %p no M_TSTMP or M_TSTMP_LRO", __func__, m)); ts->tv_sec = m->m_pkthdr.rcv_tstmp / 1000000000; ts->tv_nsec = m->m_pkthdr.rcv_tstmp % 1000000000; } @@ -1693,9 +1692,9 @@ static inline void mbuf_tstmp2timeval(struct mbuf *m, struct timeval *tv) { - KASSERT((m->m_flags & M_PKTHDR) != 0, ("mbuf %p no M_PKTHDR", m)); + M_ASSERTPKTHDR(m); KASSERT((m->m_flags & (M_TSTMP|M_TSTMP_LRO)) != 0, - ("mbuf %p no M_TSTMP or M_TSTMP_LRO", m)); + ("%s: mbuf %p no M_TSTMP or M_TSTMP_LRO", __func__, m)); tv->tv_sec = m->m_pkthdr.rcv_tstmp / 1000000000; tv->tv_usec = (m->m_pkthdr.rcv_tstmp % 1000000000) / 1000; }