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 207C7C61D97 for ; Fri, 24 Nov 2023 07:35:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8F4E76B06A5; Fri, 24 Nov 2023 02:35:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 8A4866B06A7; Fri, 24 Nov 2023 02:35:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 76C7E6B06AA; Fri, 24 Nov 2023 02:35:18 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 63B596B06A5 for ; Fri, 24 Nov 2023 02:35:18 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 41DAAB629E for ; Fri, 24 Nov 2023 07:35:18 +0000 (UTC) X-FDA: 81492037116.13.EDCB10A Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) by imf15.hostedemail.com (Postfix) with ESMTP id 7B9C9A0009 for ; Fri, 24 Nov 2023 07:35:16 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="UF/bHjj8"; spf=pass (imf15.hostedemail.com: domain of liangchen.linux@gmail.com designates 209.85.214.173 as permitted sender) smtp.mailfrom=liangchen.linux@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700811316; 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=+jlwNiD5+k6JtqRm4NuTxUsQI8cVUfE9sKvwgru76XA=; b=gKXgXUORKMtSDM5MxhucaTpi9/gtP6rSZkxPF87IcYt61fJs9u44qKBOxX6DJh/xszppvc O93M0KyBGL4ju8KY0jv63+xGUSelWltg+ZEua1Env/jjnZZzTcKz3RYRkYSrUtMYxzji6f NyoMwnLikeASFVgodBUQNitxVa0GI5E= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700811316; a=rsa-sha256; cv=none; b=IeglmAKDEVZoruaqXIPssoPwehJXEKRCOp1HKA9lQrym1k8Mf6Sy1n9ZvTE/268vf+sdUO icTrCkksKpNaw6zWATceC/IfeTpp8kC5+R0Aa/UgF4Kukdggc4WJZPCzAebptCzO+g43hV x3MlomsqUvwE9ZEYdOQLohBfyZJxMxc= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="UF/bHjj8"; spf=pass (imf15.hostedemail.com: domain of liangchen.linux@gmail.com designates 209.85.214.173 as permitted sender) smtp.mailfrom=liangchen.linux@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-1cfa9203c14so369515ad.3 for ; Thu, 23 Nov 2023 23:35:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700811315; x=1701416115; 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=+jlwNiD5+k6JtqRm4NuTxUsQI8cVUfE9sKvwgru76XA=; b=UF/bHjj8HGpwheyQpejbSY9s3x6W6/H95ASfIr7V3hKmC3gBgFBOhoEGgBbbmmzRqV I2u7ZZzK6vG25Wj+2/piBJAtgJd3z8BmI2QIi62ZnYTuPX0elTWT80FeQfE7rsIwFQsE QMhz4srK6lreLh9CCk0m/FmUttBurjixkYmBGozEeyR+8+TJm7Bieub1+P3WE8lO0E81 YX7c+WO0oHFOpSULGQk6fq5t3w/KhLksDe+JNnNf+keB2FUEuapKclkC+4L9nCRyb8nn ic7elIMEQ5YuA4sWxXGlK87X8XKzjnirPe5YUAv9QbzKitGxkHSxdAqqEDu3nf0TJXOk SnnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700811315; x=1701416115; 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=+jlwNiD5+k6JtqRm4NuTxUsQI8cVUfE9sKvwgru76XA=; b=kfTigqVfUq20Z1EPG4LMdQ3wEOwnEyBL6FgnFrORAWZIkY9WH0C5GHMffugARwJXJc 7NYO4teCR0Np5gsxkUwT3ZGH3DVExq4/2yMiytckvTNIt5U1RdsKcG4jA+erOwMa8asm j7LbQSAXwJwD+gMDvqCnux7vJIVjE8qFtPR2F08MnrZA6zNmcKl9MozYadJdbQzuwUKG 86mYd/HV3Nzj3s7rLnmZMOYNqAjyabDWJ5bRI6Z/pddAVlhvmKGVDk/J6xdZZ4Om9Iw5 tb1OqYHHdIHyOHZlNXpz4ZeWNcC4IIFRJauMTrXcJRI5GIkQGXdTBpHUJHkrpXQMPKNZ IVew== X-Gm-Message-State: AOJu0YxKwgY7RIm7dIcWOXndY72moOZu/8c8kuaO6evAe/3vOBn2l/9u abW5FgIEv0Mj23G3IMK5fzg= X-Google-Smtp-Source: AGHT+IGMX5SbhmsUS3/IcWWi3CIukpy0RDB9FHPcO3EhyuIowBYeTXuCwImY4Kj0y7HqIoVEZz4xGQ== X-Received: by 2002:a17:902:ee82:b0:1cf:96a0:e4eb with SMTP id a2-20020a170902ee8200b001cf96a0e4ebmr1825220pld.37.1700811315296; Thu, 23 Nov 2023 23:35:15 -0800 (PST) Received: from localhost.localdomain ([89.187.161.180]) by smtp.gmail.com with ESMTPSA id t15-20020a170902e84f00b001b9d7c8f44dsm2499329plg.182.2023.11.23.23.35.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Nov 2023 23:35:14 -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, liangchen.linux@gmail.com Subject: [PATCH net-next v3 0/3] skbuff: Optimize SKB coalescing for page pool Date: Fri, 24 Nov 2023 15:34:36 +0800 Message-Id: <20231124073439.52626-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: 7B9C9A0009 X-Rspam-User: X-Stat-Signature: xy3xbonwgpfbsun1r55yuum6we141cn7 X-Rspamd-Server: rspam03 X-HE-Tag: 1700811316-931722 X-HE-Meta: U2FsdGVkX18l/xQh9t8daZ3vRMNihwevC7fizrxOIm9NsQhPQ0rC/UadGRGGZ3KBKADuasxi6pMOvHxRnQLJiS3ECc0NY9IF9fKUqsvJIfbi0v+pGHpMOHldarIl0M8FNwKygQTGC3Lk6HMINRrfkOw4gt+yjohAH8He4MjtQ4wNVBfhodIN8afQ0DQ+AOVWsZ65oGhYA1ndZzShRxQ/zTV/J65R1HH9iY4xGuuHVPTEWqptmwvlv+oMBkKlz7Rv7ubP80TrTtIDlgK9ibQCzlsYme31vURe9EiWKrvg4bPb67IhTIQ4H9anTFqg282WXd3PLRKDsXcuu5EJGmCgxobRgLCpgouflhSLmKfKRviRzXEjaY5kgBO3ZurwbW6FxzNiQ7aKh1fs+9kpgo5DojzG97bqXUZMZmpe7XEa18XrywX61ffjwEeBNokO6fyIDfeHlA4JhXxOkmbP4HD9+LqLgpHSy1QMCJKe8qMLsEfI5BnbUKB/ACpJFDXcc6FnN8Ta1eH/lF7YfJDcTkl7768c5U8AXxIxQ0O6PPal4jSV1xnlMm1ehm5XvNZt8q+5Z7eOCw+qWJilkzv68vV6oOxTyOnYX8PMGACTrRBQTDHxEvxAWYu8AHoE39F/OkqV1+nmaRrLJz338yFMhjYRBLs7HGqgPA+Wxb8eF1jYcOAr+qPjFdDVXmMWaOaocPNC7lrTs0V5dzGkd6UVb15tfYzXlzlgX2aEVfodoaOlHhII5pTqhyItbDTDed+6Eq9LzgsLURkCYZoesOTMrnTLX/95GN/rEnq2XsIu75fzeq6VmY1UZ16ZccAd+ZiE7VpzD+2CrtVTIGrGh1KvU3M/U3jeAN+KQHqUEx7I/NWOKGa/gdRiI8TXvFRGTpypIe93OgOD+dEjBQuPtd7odenXR01iGEgISTx8Isf1WU6HYp5NY3Km3MHMFk9ELji7lN2RGd1ju4zqHmWyUG+0iDp BfArcDg5 upu3m5mf4ksKGfGyKcK4r9sYKvsw+E1Jv/szk/3VF0kEaDwlQ2LpUMDS263cHJcSBWv6Fld7TAzh9A3ROnZOG/q91GuM883t4jAejLDI3GroyXGtLunYh1Wmqfd6KrnLP36O4Is2FqWh7PUXNtQG7ujMEdPZFe3nYG+xZ2OmgiP4eiRniGhYjV0ZXyJMug/5oZwFUBv2apde8ABnmvwwlqfrBcq4rHHQ1XJb0WGcyqDji21UksXe2y6Ogp18G0qGWmIdzaevo1UDa0KGYHvhNj7dakW5v/35h5KvghMIu4Ard7L98PcmzzVU6acHCbPii5Ir2ewDxmCk25IahouFGxG9ylUjvCH9UCKhxDYk8zf2gKEmV53IdT8ajQ9fmx7Q0czlOfbkaWlZ5Zz//67FaMMRVt8/OG0Mnrqj85tBxRYQ3Pd45GKidAwxdCt2bcR3HX5yTwYUq+Na1FCLDL6y9+BuHU0GwglGXbAyt+A63rtoQ+rugPEZCmGeeTttABw9mbtaXWhDKKg8nA3eNfy15q4VtVQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, 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 v2: - rename a few other functions leaning more towards pp_ref_count managing Liang Chen (3): page_pool: Rename pp_frag_count to pp_ref_count page_pool: halve BIAS_MAX for fragment multiple user references 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 | 67 +++++++++++++------ include/net/page_pool/types.h | 2 +- net/core/page_pool.c | 14 ++-- net/core/skbuff.c | 23 +++---- 6 files changed, 69 insertions(+), 43 deletions(-) -- 2.31.1