From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5F0C6C4332F for ; Fri, 15 Dec 2023 03:30:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A23E98D0104; Thu, 14 Dec 2023 22:30:38 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9D56A8D0103; Thu, 14 Dec 2023 22:30:38 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 89C2B8D0104; Thu, 14 Dec 2023 22:30:38 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 760008D0103 for ; Thu, 14 Dec 2023 22:30:38 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 4F564C04C7 for ; Fri, 15 Dec 2023 03:30:38 +0000 (UTC) X-FDA: 81567625356.14.A810055 Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) by imf20.hostedemail.com (Postfix) with ESMTP id 9A9D41C001B for ; Fri, 15 Dec 2023 03:30:36 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=WZplBarU; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf20.hostedemail.com: domain of liangchen.linux@gmail.com designates 209.85.215.179 as permitted sender) smtp.mailfrom=liangchen.linux@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702611036; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=Ncj5uTnuRgdnCzl7Emd8jgGhrWmYxy85If64tkSyQQg=; b=Iow7p3RPrBWjkXOZ9c1pm6v+x6rtKkFbdD9d8/BpwDNT10JhMJ2s9YHsgOT6fNopz2HuJ3 bb7Zs8zOLwwCN387cnls8Rzjpp8hiQLRNCcZHMV38BM9a2jYAx+MzhfQMnHuCIQSyclarU F3ijiPqbuFnQLupr08sQCt059dDV/og= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=WZplBarU; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf20.hostedemail.com: domain of liangchen.linux@gmail.com designates 209.85.215.179 as permitted sender) smtp.mailfrom=liangchen.linux@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702611036; a=rsa-sha256; cv=none; b=SNMLJz3XlU7qsA8FNW/3qZS41tPcJIfoLOvlv3kxUuUfZVsABg12ejeCC8mYL24YLqrWYT UhS4Vbi3/mNbqdh8X0wEDi1zzjOodymxSOBHoGJLi6i5uG6XE6zzNls5YbHgLqqZGjDgWF tplJnqTXGzOYXd9liklFzgvIOfDdBL8= Received: by mail-pg1-f179.google.com with SMTP id 41be03b00d2f7-5cd5cdba609so245101a12.0 for ; Thu, 14 Dec 2023 19:30:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702611035; x=1703215835; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=Ncj5uTnuRgdnCzl7Emd8jgGhrWmYxy85If64tkSyQQg=; b=WZplBarUSskQ1R3nM4c5UgyWh110SurOXKpD+NKbxg6y7YUNXT4FnL9fN1P9V01oKL o2JOtBkP1RVrDxJj696Vf8Bn5Ao9M805ok/2PvJPNwefoKRYKXxKmotFRxm4uM93vlFA IKawZE8f+yFE0gfqZtJ2IThmiz9QcvGfoSsi6X+q9t8sM2jMZWFFIjHAgPkjg9gvkpKU gLNpGYJlDR1CUS62BIjOjLeB6qo1y7loV1lBr4O5tRpdGSMxgedTAyOlAV51eYWrYGTF 4iL/s0ZR0yFHu+NNN7bdbpgZlag23B+KK9XgL84/M4iWwY3+FJlcyjQd1bOvF6hqtyAM t/9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702611035; x=1703215835; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Ncj5uTnuRgdnCzl7Emd8jgGhrWmYxy85If64tkSyQQg=; b=PPDUDIxI3pHaK29Ef7IbMIBuwWcsmWlmJrCTMwv2wTlUse1zr1Ch6RPBmD5NA0P0Vb LpADeu0xFmRqgWdkbPrjI6ckgSH6ax1xHaHIegQ1KU5MoV4V3boDWf+bHOQyDVAZ5iID CRbexABHc6QuSkChy8GXXLrZ6yq3dv6/VdXKMjnvNl2xLvSSBkp0cXQcQOMV3wVpk5f1 HigPN8HpxYtHFmsYDhSIMhrWak/yV3u5uyHCyBVuzGjYQmYuHE6GaEyT1LyBGRtlEwXM 3ulXWL+vOnqef/F+wzZ+8FPBNlTACI9nnQKWiUwQati8V5Lfh2duGrbYli8YR07fNfqd 4F3A== X-Gm-Message-State: AOJu0Yx2tZlVitjkPAtuXS9dwgSXtdGiRQJgAq6yrDXdaD3jdtiJTjrQ sfAzHe7DbS+Ipkz6yO04kWc= X-Google-Smtp-Source: AGHT+IHawRCaWwaBKTcTAxMfDlS8AoPi6CMHLZFNhQdFjaq/yPKGxy1sj9t+lcx1lgq8YVHbO4fQ/w== X-Received: by 2002:a05:6a20:5648:b0:190:3f60:ee09 with SMTP id is8-20020a056a20564800b001903f60ee09mr10823563pzc.36.1702611035249; Thu, 14 Dec 2023 19:30:35 -0800 (PST) Received: from localhost.localdomain ([23.104.209.6]) by smtp.gmail.com with ESMTPSA id v15-20020aa7850f000000b006ce467a2475sm3702775pfn.181.2023.12.14.19.30.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Dec 2023 19:30:34 -0800 (PST) From: Liang Chen To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, hawk@kernel.org, ilias.apalodimas@linaro.org, linyunsheng@huawei.com Cc: netdev@vger.kernel.org, linux-mm@kvack.org, jasowang@redhat.com, almasrymina@google.com, liangchen.linux@gmail.com Subject: [PATCH net-next v11 0/3] skbuff: Optimize SKB coalescing for page pool Date: Fri, 15 Dec 2023 11:30:08 +0800 Message-Id: <20231215033011.12107-1-liangchen.linux@gmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 9A9D41C001B X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: t76pz618e7nkniim7mqrzg4ojp58h1fy X-HE-Tag: 1702611036-738469 X-HE-Meta: U2FsdGVkX1/G4HV41ruK+DPPp3RUwg/pxoYSsZUl/31f+qLQCsRs0SfU7mmqZ7R+nCnABif6fkOWPiVAt8PzDUH5Gj26L+QZ31bwjiDiZggn80ouezdAMiZBzCvXhKhSKiZvW6BIIVKtzEwxgYN9/gp+tQtwSIVQ0/AEHj0AHMXUOw0yjfvi3Xk3AHVRBpjc1wQslv87IHxYm5e0wVcIjD6K1/QL/qqyKk2Jg/qb+Eg+Qwj9kg4YXGeSZ3EVMwuU7GlaGMpNFFuyBN4KEdA8vjvg03wbHKyYdfBGXFD2J4Cr5w9NNaCt3adpvYvFNbTHNFXd0zHAAIZyZRzoxfTx/HhgridcoIG/MSmDRKHK68ItJYhmd4kDLFYPGQXW2iCQ/puPgZPnOAFI4tGlbhneMecOLeM/fWcpAZoVT0XVperWFBTIom+HTdnq23S7JrOZrOqg20Ud7PLZCq4I/7hPorR/uBtaQUxsJ7PhUGJqcRuFnirxiJIg4kpEhCcat1QfBxf8eZDolmWAEQKi8IhXscylLwVCKVH90oa7UhMxwLhWoH8OSOTAPrUh4jdtpzBf45UtVVroQOhZfsu0gELoyO5zaltWdJB+s36mFCAjGyvwaVzoRsoNooYtcHb3LWZT50H8u776qnEYpdmvczqluQUrMkbCcigVymZC/y1WR/QwYaMcdrL97bc2fAhYvjPdf1Wr3yx+N640P2fj/1/cY9C5xFtKF/ryT0cXsEP2IHlGOjR2QHWr7jIm92txvUEKFieol62zWrzMiteL/0pym809XNFSy8LeGl4sInunTB/KIv6yidAO59NniucDE/C1P0xUfTz+bvFEHmgOX0PqnGUpW7Ot0lNC6ZxQNNFSq/VlGC1yfgQvyMpBOOPacDMd1pJJWQumqQCdNcrkvSD21Oy42OEIrz/TY9g5/XJU0iUiwcjf3Y235uJRmH0PIC4ujPGVGZP7eC+pys4KhcD oyXm4bWg yVxwVel2IJNMLNceZ7jkZa6QinLsDECXTx9OzzzYgNBed6PQVEfQ3NWT09fgQQTFN0arhnX5Ma3cSyabkHwm77Rg4GvKmNH+0F2n/BQZyyg3XCCJrxnCHLiZlkBBjflXw44MlwbAvjDLv3eE+5bdmZi1PpuuPz6nv9633t1U1pfziL5jcWHOtdcm2dho7VpqPFXIPei00zp+w1El8j6QDynk6HvMTkhg98wQ7YoBT+5DfHiTe/KfIYGPWOL2gUUquPMbeJL/vrwVw72MXBYqzRayFuh/LyDs4W2bynPYfcyCcCvlN5Z17xwzKSYQWFXyEifpZEcVZqBkGPIncY8dYj2+FjFCce+VY2BEUJ94piZc9oKxTvEiADaHNG2ZEAXDPsuvfhFvkaucN6qnncvGGqgIhRha5KKnSYVAElzc0tyAkA5PLM1a4UfC/I+JUxVMMOCYtv6ysvjBGQgrW1lP/R2htP+pdH5Wep+407Bb6HqGt8tjdnwrc5isxBse1wHY6UZZJ4xgv1HdESkhvu4LIt2OXvA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.080392, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: The combination of the following condition was excluded from skb coalescing: from->pp_recycle = 1 from->cloned = 1 to->pp_recycle = 1 With page pool in use, this combination can be quite common(ex. NetworkMananger may lead to the additional packet_type being registered, thus the cloning). In scenarios with a higher number of small packets, it can significantly affect the success rate of coalescing. This patchset aims to optimize this scenario and enable coalescing of this particular combination. That also involves supporting multiple users referencing the same fragment of a pp page to accomondate the need to increment the "from" SKB page's pp page reference count. Changes from v10: - re-number patches to 1/3, 2/3, 3/3 Changes from v9: - patch 1 was already applied - imporve description for patch 2 - make sure skb_pp_frag_ref only work for pp aware skbs Liang Chen (3): page_pool: halve BIAS_MAX for multiple user references of a fragment skbuff: Add a function to check if a page belongs to page_pool skbuff: Optimization of SKB coalescing for page pool include/net/page_pool/helpers.h | 5 +++ net/core/page_pool.c | 2 +- net/core/skbuff.c | 59 +++++++++++++++++++++++++-------- 3 files changed, 52 insertions(+), 14 deletions(-) -- 2.31.1