From nobody Mon Jul 27 00:10:41 2026 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 4h7fBV2VT2z6m9WZ for ; Mon, 27 Jul 2026 00:10:42 +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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4h7fBT5KM3z43XV for ; Mon, 27 Jul 2026 00:10:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1785111041; 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=E5Ma34+nPUNJwI8lGiwhMvjRbzqntwktq0cRGPm+cms=; b=VE0Lp14yVv+sr9F/GyW6I7tn1f73lEK0hkCfU5J0R04cBKC99eyU3jd9sETm6C+vcgTKTb 2/6oenys3Va7faycNIHVdWDrbtH4N9TT3mE/ByyMk3AXFGAdkLmchEYduk/KUronxnFHzp B5E46i7ODzITCJrWptQqEfOGOKqdjqzkc33AgzyW5jW8S8LBnVNimZtKsq6wF+6ZhuuZx9 skzWsZbzxMjgAAdxqIsdL8zCFKd35ZGY/mQkjbls6d2BvxjE6xf2iJM0dx5S4PXOSP2y4f duIaCH/zVefy1sQNEdPmV68Nn2J7w1mryUVhdwGLD3XF8zx2VbQ66N5VoGd9gA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1785111041; a=rsa-sha256; cv=none; b=PhaMBTRqdeQ8J3DBlrtBjuPifuv841fPQZTgwyb6A8Uc3aQ3afhrA/LQnNmbNbWAhoQVJ1 Z2e3gXGOTxu95B08T3W+makbtPzNeQMg7/DBlAEd8EJXbVAKPOHb9Q3RGIsLiIvSJW5l97 EWdnPShtQoIz0yf/W2gKDHADT285BeDABEG9FPOLYrRJoGVGPlPb/swfxQ1k47mOq/asqj KVC3h1FYkcKhUjorVVeUTupB8qOzPo4d1ZviBXwXy2JoIB/vLInOfN17LwHVs7QL+KtBo4 b6amM+2TYuI5y8hpPy4e9zo9j8miyWzr5SmnMIC5BFh9xKiBVBDArqnzZEZ1Dw== 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=1785111041; 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=E5Ma34+nPUNJwI8lGiwhMvjRbzqntwktq0cRGPm+cms=; b=OW8o0bDwmSIzUsbDrhzUdNay2NUVWQwTkioF2QuVr1+2Pd37qV1CP9LDlAUkXI9u5ac4OX tLbEMKsbtPhV1vMp18SVScRhW8M8S7n6wvljfzLOsJkEkH6sy+x0GOLcz3r1zISVR9XGzA bhiHTGwuIb+BUyl53uhVohkv4JiIctVQzdXqfrU16HG8tQVOgfGrdA6h/C7nwssCKLg5BN E5xkTdmlFhEhVFPSru2vodogDb629AXV4al6PnzTNw5T9tXXTL8fsKZv7EWvntm8UzYliz w6ya0dk0bzDIeoVFwKit7oFVr7spSL0/KhUW3cY+SZW5zsFlKksp781Dbq5yjQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4h7fBT3pCdzl3d for ; Mon, 27 Jul 2026 00:10:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25fa4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 27 Jul 2026 00:10:41 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: b37a29f84940 - stable/15 - LinuxKPI: skbuff: add initial page pool support 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 List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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/15 X-Git-Reftype: branch X-Git-Commit: b37a29f849402f417f2144c886ce523d78f76ab7 Auto-Submitted: auto-generated Date: Mon, 27 Jul 2026 00:10:41 +0000 Message-Id: <6a66a201.25fa4.368a53fa@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=b37a29f849402f417f2144c886ce523d78f76ab7 commit b37a29f849402f417f2144c886ce523d78f76ab7 Author: Bjoern A. Zeeb AuthorDate: 2026-07-17 11:02:45 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-07-26 16:48:29 +0000 LinuxKPI: skbuff: add initial page pool support Add an internal flag which is set by skb_mark_for_recycle() and upon "skb_free" then selects whether the skb is freed or returned to the page pool. There will likely be more details to figure out once the LinuxKPI page work is done and we support more of the page pool than the bare minimum. Sponsored by: The FreeBSD Foundation (cherry picked from commit e4795d3dbee71c463429e2901dad111fbc2d08fc) --- sys/compat/linuxkpi/common/include/linux/skbuff.h | 5 +++-- sys/compat/linuxkpi/common/src/linux_skbuff.c | 9 ++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/skbuff.h b/sys/compat/linuxkpi/common/include/linux/skbuff.h index 9434655fc9f4..77ef47064fa5 100644 --- a/sys/compat/linuxkpi/common/include/linux/skbuff.h +++ b/sys/compat/linuxkpi/common/include/linux/skbuff.h @@ -182,6 +182,7 @@ struct sk_buff { uint16_t qmap; /* queue mapping */ uint16_t _flags; /* Internal flags. */ #define _SKB_FLAGS_SKBEXTFRAG 0x0001 +#define _SKB_PP_RECYCLE 0x0010 uint16_t l3hdroff; /* network header offset from *head */ uint16_t l4hdroff; /* transport header offset from *head */ uint16_t mac_header; /* offset of mac_header */ @@ -263,6 +264,7 @@ static inline void dev_kfree_skb(struct sk_buff *skb) { SKB_TRACE(skb); + SKB_IMPROVE("Need to be able to deal with page_pool"); kfree_skb(skb); } @@ -1166,8 +1168,7 @@ static inline void skb_mark_for_recycle(struct sk_buff *skb) { SKB_TRACE(skb); - /* page_pool */ - SKB_TODO(); + skb->_flags |= _SKB_PP_RECYCLE; } static inline int diff --git a/sys/compat/linuxkpi/common/src/linux_skbuff.c b/sys/compat/linuxkpi/common/src/linux_skbuff.c index d57c277c3267..6908101f25af 100644 --- a/sys/compat/linuxkpi/common/src/linux_skbuff.c +++ b/sys/compat/linuxkpi/common/src/linux_skbuff.c @@ -55,6 +55,8 @@ #include #endif +#include + SYSCTL_DECL(_compat_linuxkpi); SYSCTL_NODE(_compat_linuxkpi, OID_AUTO, skb, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, "LinuxKPI skbuff"); @@ -349,7 +351,12 @@ linuxkpi_kfree_skb(struct sk_buff *skb) shinfo->frags[fragno].size = 0; shinfo->frags[fragno].offset = 0; shinfo->frags[fragno].page = NULL; - __free_page(p); +#ifdef PAGE_IS_LKPI_PAGE + if ((skb->_flags & _SKB_PP_RECYCLE) != 0) + page_pool_put_full_page(p->pp, p, false); + else +#endif + __free_page(p); count++; } }