From nobody Tue Apr 22 20:03:52 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 4ZhtV11VYVz5t7RK; Tue, 22 Apr 2025 20:03:53 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZhtV06p1gz3TlL; Tue, 22 Apr 2025 20:03:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745352233; 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=/PXPFWYI1h2AtQ56IJKL0/OaNiaQZYydIyxCdscAkTQ=; b=sGFiXpVXxXX1R2QvyUXs2hhWCbTXUmUEmxBiT+7Pfg2o6y5lXsfuTS+ZinCekC2mpPyNoz DG6xkPn+YyPdDk9sJ37Y7JeSMmGLvnRzaBmldNBgWTp8OiNDReO1DrNi1J5Svj+j367/T7 b8Tme0PpeuJ84AZT5cB4fBiEHO4oJsDneX52R5zYUu6pTbR74yWcR9twlEh3M9wm9+Twq8 jTvU6NB3WnBgOz2qhvM9Mz2jvsp9h8QIkkfu3k9wYMC+QAk1GZozQ4dvdMfplppyHLsQY1 UcQaRTq1zBWQgTE1KTlguexxkylL82y/nli5qHDO75fMjYo1u4OJdwHDNv0IYA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745352233; a=rsa-sha256; cv=none; b=aylSKQXAh+9glrVraKB57FGWQKmFT5Wj8QrFWN1Tsx9hM4+Tq4g1ZJYJZvm8aepYE0c5d0 atLOF8QIpBD2YlOU1XjeP+9I/qIB3HTZXPVwrU0Rph96h6ao528aNc0q3+k7ehd7ZwwP24 hjW/FC36SQzQXDGaku5AytjYOXRqIAHOMp1PeIN2f3Bu7Gwa89VvwPHmAb1sz2R/aVnEcE UQbilDNDBRrPXy4+OC5iSvcF8KJFjdTPQhu6lFGG1l0xHYBD13iB0PcHSmU/MnOVPoNaU2 woHQ+LIsu96pmNDMPUfM1NebDCeESe/HoUK8TpoxnAFrLqa3i/7IKqBSZNa2FA== 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=1745352233; 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=/PXPFWYI1h2AtQ56IJKL0/OaNiaQZYydIyxCdscAkTQ=; b=sgvJOC+2xG5zZdo3HVoZNGNSlQ+Ep0NYiyZB6pLhKHB3D4Q2xfFq1A4DbRfpUc9DjdWx5v YUoUyrgcJkwGTBOSVD2vJwTsoN2IfVmshWlfy+EdOCQ/qJSLitv9KzSaYJGgoChf+4yOE+ cXjcghc+Ve9FNxGhDZ4eJOYr3BlkYXuiMNbhhA4jl5e6qRN19vN0zm7Okc5I+Nb1Wi4Cpm G3Eyibebd6JESuseOZkaxlpKXnA5uIYBrVpAMSFVeQ99JP8AX1DFa4SKc3zGLkm2G2yOtm DmpGlRK50sMWwJftDSCCe/tjyjtZQFjbNbOvW92JqtP8Tgg2oxIjhbrUBZi+Vg== 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 4ZhtV06MwWzZKm; Tue, 22 Apr 2025 20:03:52 +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 53MK3qtS098927; Tue, 22 Apr 2025 20:03:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53MK3q7V098924; Tue, 22 Apr 2025 20:03:52 GMT (envelope-from git) Date: Tue, 22 Apr 2025 20:03:52 GMT Message-Id: <202504222003.53MK3q7V098924@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 22d5d61f91eb - main - 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/main X-Git-Reftype: branch X-Git-Commit: 22d5d61f91eb70ced6a010d9a1d60f0ff33fff2f Auto-Submitted: auto-generated The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=22d5d61f91eb70ced6a010d9a1d60f0ff33fff2f commit 22d5d61f91eb70ced6a010d9a1d60f0ff33fff2f Author: Bjoern A. Zeeb AuthorDate: 2025-04-13 13:25:12 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-22 20:03:30 +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 MFC after: 3 days Reviewed by: glebius, zlei Differential Revision: https://reviews.freebsd.org/D49817 --- 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 9373a3c3d656..58b7585303bb 100644 --- a/sys/sys/mbuf.h +++ b/sys/sys/mbuf.h @@ -1109,7 +1109,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); @@ -1141,13 +1141,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) \ @@ -1161,7 +1161,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 @@ -1206,12 +1206,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); @@ -1531,14 +1528,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) @@ -1809,9 +1808,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; } @@ -1821,9 +1820,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; }