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 0BA11C4332F for ; Tue, 12 Dec 2023 04:46:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2F3D16B027B; Mon, 11 Dec 2023 23:46:51 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2A3F46B027C; Mon, 11 Dec 2023 23:46:51 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 144A06B027D; Mon, 11 Dec 2023 23:46:51 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 00EDB6B027B for ; Mon, 11 Dec 2023 23:46:50 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id C2B378089D for ; Tue, 12 Dec 2023 04:46:50 +0000 (UTC) X-FDA: 81556930980.01.F968BD5 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) by imf02.hostedemail.com (Postfix) with ESMTP id 0B51F80010 for ; Tue, 12 Dec 2023 04:46:48 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="et0/kbEg"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of liangchen.linux@gmail.com designates 209.85.214.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=1702356409; 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=QOHMCE8SbYViYKM+gAXWxTdAxXP0rvaIbcht/d8n6Hg=; b=jGXNhofh4nEajuhQkNPTgdtsvO7+9AvRde25O68J/ARvyf6dz/XdrPvTkmWDDmvJxpe/rD CBhuXhgVWJc8wim5AbJTud3H8zPdf/crUeNH/ki/r6TCQwAVJhbJRqm47PFMlZQeo167G3 FzAGgyfh8KkR0dLLRMGWKDUIJvg9oAE= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="et0/kbEg"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of liangchen.linux@gmail.com designates 209.85.214.179 as permitted sender) smtp.mailfrom=liangchen.linux@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702356409; a=rsa-sha256; cv=none; b=lxN8IiHlNojnrv8a71Pl3SfIYfL9t0WfHUbW6T8+lH6KJ4TjGBf1mKjJH3HvdxyrzRyvW4 D06iSuIeig/D7ePgJtO5XxE2nBqWRswchf/CwBxVQXXZ2Qxe3Hnxp2qa9luo7MH5JcXSZP rn6ShXtHYn24JZLcXJ0CofQ3IJI/fC0= Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-1d0a7b72203so46020035ad.2 for ; Mon, 11 Dec 2023 20:46:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702356408; x=1702961208; 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=QOHMCE8SbYViYKM+gAXWxTdAxXP0rvaIbcht/d8n6Hg=; b=et0/kbEgdRchhpwg8ekeOc28qtyKNsCvj1Bpgcbn+B6lr+y3cMvOcLiNo3oM2xdxLF NgA6S+yjyryHKQZ0iVfsVDDu7tW4svLBdAe1G3yjEnwblexAPepDNnI2o3N/Ved+0cM5 nPCCcQvT0MzNhRLTmbJ9EGAxRcAW0vCbtDYIz1Q3z/juK7cE2mnotbxm1OBZaenGIfx/ UAhIhn6xKxS1ON+o0qlydStHm1L7lugIG/fPvLJb7CNVOFWJD3GATjekRsvUviJaMLdB MVaX6h+FmSlGhD1h804NZMitdTipiT8eaY0bxFMsFfx5+V9OwJIgfVxWZcZXj+BiYH4S rRrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702356408; x=1702961208; 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=QOHMCE8SbYViYKM+gAXWxTdAxXP0rvaIbcht/d8n6Hg=; b=l3Y0ED9EtM/iJWz7BP9nuJIHk9AovdUXwhpSm/KBNth1G9VGjUCPHMnm/3AU/NSGSV IDNfffaTB6B03qDqmTkCENOOnq4WMOtH7Yq/ks0p0aELNzcfJIdoroCLF13/YdDFnHgK 0hlvd5syc566Jjnbs1oar6PWhjjxnUJuQ2x196MJ8u3+cYh/dqOkKrxyUL6KA+sHK02p 9ryccFd9ux/tJj9rnlM4jbOzvuwELVVsrCbr1UCxqltO+5BGCSNUzwoKK/beTTxpTA1k OA1Pr0Iw4twhQNsDRb9Atzteo9qah6pTfxo6ndc32HqBziVrOlvxHKEMCbT/l6eK2LXz gmqg== X-Gm-Message-State: AOJu0YwuLDlE8J6YRbX4vaWEu7awqHLVo73WSEt9HGqHbYCxlKAh0FKF +m4iRLAL7V41POkmwg83YRY= X-Google-Smtp-Source: AGHT+IFAHSN00lNacpLH640iju74Vcrj+ZbS0ULyrmsYtiKQNU7egtiasm4kkDNaA6Rcc0GRFD+WIA== X-Received: by 2002:a17:903:32c8:b0:1d0:5806:f45d with SMTP id i8-20020a17090332c800b001d05806f45dmr5882500plr.42.1702356407670; Mon, 11 Dec 2023 20:46:47 -0800 (PST) Received: from localhost.localdomain ([89.187.161.180]) by smtp.gmail.com with ESMTPSA id c3-20020a170902848300b001d33e6521b9sm36143plo.14.2023.12.11.20.46.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Dec 2023 20:46:46 -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 v9 0/4] skbuff: Optimize SKB coalescing for page pool Date: Tue, 12 Dec 2023 12:46:10 +0800 Message-Id: <20231212044614.42733-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: 0B51F80010 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: pu5646dmqpyj4wps6yorrpfiwyem453s X-HE-Tag: 1702356408-744135 X-HE-Meta: U2FsdGVkX1/6pwTcjpoqCmNt98QusNbC1vDItKBdCX+OxmATLg3kCLzc4gvHY1QSOV+lo6FKdJgEvij4drrviJ1CCUpBJQmryarEwkX+xAOHPGAJQgn3BqE++5BQrNo22q+c7NWr4cBhuK//5U0LSMEqfnCSjx3pIMnlTX8eFDBW+OqqRBbG7LcuqdhrVlnjqkuu6KpIPoJ7A0/j2sF7Qg8NVyVFg7L7tZBNhei6QZRfjYIp6P+8ucq4paoBrknqerC9C4jXyu/STj2xuueRzAKcFcxMFZ9gTPg5cop1ZVN40Ms/2G5LMfXg2ZWaifout4UdIQjI3wi/RAbcvR2ICRbeJycvTs/Tog7FT810kAxcw/zHLsVWy2m1XBQTMRpN+GmjSOPIoHhonElC9xgSj2YcUqarbRXG41pwjlaDcZ0ysVmS0Q5LfA4QjiQkyPgoJN4L0fgHLgCuhq+vRzXTzob/MNoAg+xXlOOEKooTcfMsCNhXILxs8610BtaY1XS0LKfmx75+h8NFHrOX9tyZnFsujPGLpa2cwInqsPMoC2Pnz0++zcA4xI/K3jOHNFhhiA0Nr16SDixcoNt62JniZ6CPCv9wRq2q9XMAUexNLmszFnvVtDmSAYwPS4vJmh5uGdeaHlvApASODb4pfCK+fl5KDdbAo9y+k8xF+JocZD+LHJ/+/lboXpJ7oNh0rsx7SUsYS+OhPTIQeKFtfffp6nmyHtl0LWNLgOUHqUG4ikr/XE4xBRfxx/hugdW8Hsqjt9QhxEK1dHpzCAmrY1gGenLXWxXY4wBcBT3WdeKL7jXg+JyUUKEDbAuxh2u23lFH1H+mZ8g3BohZEiYwg/J7lNNnFToTlBX75wGHERg3Q9yOE7fu5ZLtNTt1Jf+T14RB9NlHq+GjP9ZhL2p6EfVIp0tJbEw+CuJlFno4FEuynOb+lHeYb/iNs4rRpgnomRBUQrpQ10Ih5399wYNzwYU x4AeCdZ2 Sz520QReuRbLbAixbyUfuf6m1GLg6eow+ylgKfYA4FZRNoVoWEkpaNoyGruLZlWd3j1cmadtOw+dmMh0xZy7WlK8toMJ1oWZ7KCxOxRn56a5cwYBt9EGdI1CjWYv/A0UXPjnlGUqA5SrEKC3NQubsVnhzYJ1lzlcTZiebF/Bs72JFxHsA1a/cpmlAlEbADgkT0UsnTJ40aDn6k1+W39BTcHzcjWi2hzplfVKXlv/JJC8UNfFjHv8pZ/wmZbB29S0LOpXjA7mb+WkftrNcIw2+gJtmfb/nJ5MUEby1EwkM8E8wDBDV5auf4g7SABZY9pHLeajWO3s6APdVFXhjODjDfS5NulVlRq7pNcYIv8nqzZ1JMw8/EcpL5QgGXZYi+//VU1z89FtjlndG8/SUE1wpSa8F686lsDX3N8FaVfwGAx+38kyi6Q3MEyBwnAKsfhm/8g19lDacmcnG5q8h1jIuO7B8ljmO5InoBQBxKboeFYnAeYCuF2a1yZ1SSwre0DINLBkpjYZ67wSorLLSFJ1Dve46Tg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000099, 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 v8: - improve kdoc for skb_pp_frag_ref Liang Chen (4): page_pool: transition to reference count management after page draining 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 .../net/ethernet/mellanox/mlx5/core/en_rx.c | 4 +- include/linux/mm_types.h | 2 +- include/net/page_pool/helpers.h | 65 +++++++++++-------- include/net/page_pool/types.h | 6 +- net/core/page_pool.c | 14 ++-- net/core/skbuff.c | 50 ++++++++++---- 6 files changed, 89 insertions(+), 52 deletions(-) -- 2.31.1