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 3118FC4167B for ; Wed, 29 Nov 2023 03:12:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 949706B038A; Tue, 28 Nov 2023 22:12:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 8FA156B038B; Tue, 28 Nov 2023 22:12:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7C0F56B038C; Tue, 28 Nov 2023 22:12:30 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 6D6166B038A for ; Tue, 28 Nov 2023 22:12:30 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 3274312045B for ; Wed, 29 Nov 2023 03:12:30 +0000 (UTC) X-FDA: 81509518860.27.356D439 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) by imf17.hostedemail.com (Postfix) with ESMTP id 722CF4000E for ; Wed, 29 Nov 2023 03:12:28 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="h5CtdnO/"; spf=pass (imf17.hostedemail.com: domain of liangchen.linux@gmail.com designates 209.85.214.177 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=1701227548; 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=65Jgi4CDY1XEBO1YptBXXFf0Pz0m19bN0RDTr7BSLyo=; b=NcW1pWj7k4vdH83OqnlJtMY/vSTTdGM9zms+oewwQ8yWTFPyUuZr57RQzqpSUmzwUq0h/+ UgWqplUPoondba2HqrXn9ALNukc1cSTWVbsjgdfI/uPWTsEW+VJ9cGN3ZjNHwYibs/YHtB 8BHiTyfmE+azAvBD8/sB3oi99rvPJjM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701227548; a=rsa-sha256; cv=none; b=E9lBCBEIup+ERvvjjgjh4FvrUeES3IWYEVNzQvwXPh4XDlFIZ4RGSjbP8R93Q2BAZNayxE 6Cb0S15USJXqjhO9u0cBlePUHGqLJ8VkVabVAi1rFYcO/3M75mlpYA+FN1nohgqZYlFTKA tpnUak8MvrFeRduXoyUJotdPc9UhV1A= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="h5CtdnO/"; spf=pass (imf17.hostedemail.com: domain of liangchen.linux@gmail.com designates 209.85.214.177 as permitted sender) smtp.mailfrom=liangchen.linux@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-1cfb3ee8bc7so33714305ad.1 for ; Tue, 28 Nov 2023 19:12:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701227547; x=1701832347; 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=65Jgi4CDY1XEBO1YptBXXFf0Pz0m19bN0RDTr7BSLyo=; b=h5CtdnO/Jx8GE7FpqMvbEsXYHbIf6w3AM16QIVDsApAl2S0yJG7r9rredcjw+E7OYx +KfLdptXzbv/qy8ZV/Ln26Qgb4C0VFVdHNxKtDKly3iijtFrhogxvkbm5ZjN4lO7EyXZ mOU14Niy4vXS9aAFvgmKhHWWGho5rAI1mkAJ7iWCRijmGpxd1m0nY0HSI7cNuVKGilZP ZjOBpKd79e6PVPChCEbtjFAJ8VdrfJro1FF2zk3nfs0gwtJCed4ax0dsxyF+KKDF2RU/ JVc5qq6gIfFh412tNjgzo8sl953LJAiNY7Vcg1yrpOLmAB4CzWWTBQCh4PAZC5ivMb0x 5wxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701227547; x=1701832347; 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=65Jgi4CDY1XEBO1YptBXXFf0Pz0m19bN0RDTr7BSLyo=; b=pnvYGSVtxMe5j+kg3uSOWTTlSEu+++m1TxeXToQzvv1TmDez5pXfGEiTs7uBMUe7KD 9wtpdA4qv/I+O+JyyOdbZ9DeGU5AKpk9RThsBZSJRW6mrsfn5oy2tYqKGBXUYmi0ADGf qDH/S7z2dwV9WyXJmKpI2hP8SrKxk/Oa0aREzetGhQKgiTgX+41Ud67PdtN7dzsIaKJV EymwaOPnpwI6pJZ8t+HttesaKm+rYmh7TP8wMksmF/0uLWFhKMfScCiXXda3O/qRuY8h UVkPUaonK5J4ymMvdY0f7qmpdXCwaIIzquMKIcz37pPoNj4/gAL/tI7vTqgPMDUN5FUT F2Wg== X-Gm-Message-State: AOJu0YwtzNrPDpXVNXl6pitjAl9DRfx7zjBeCgMHpCht03wWebwMyiun 9Ejd7LzKqakajI7DKeKu+As= X-Google-Smtp-Source: AGHT+IG8TVO94vIzmzInu+2SxeAFE0aFO7BNafN3c1T9cbb2crF3muTw9JyVidwFJwpdgMb6FDIORg== X-Received: by 2002:a17:902:b409:b0:1cf:fa6c:7321 with SMTP id x9-20020a170902b40900b001cffa6c7321mr3405458plr.60.1701227547364; Tue, 28 Nov 2023 19:12:27 -0800 (PST) Received: from localhost.localdomain ([89.187.161.180]) by smtp.gmail.com with ESMTPSA id q10-20020a170902daca00b001cfc46baa40sm5669287plx.158.2023.11.28.19.12.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Nov 2023 19:12:26 -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 v4 0/4] skbuff: Optimize SKB coalescing for page pool Date: Wed, 29 Nov 2023 11:11:57 +0800 Message-Id: <20231129031201.32014-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: 722CF4000E X-Rspam-User: X-Stat-Signature: t1cjiyfd4s6xf7fn88byfkrmqx1mchdy X-Rspamd-Server: rspam03 X-HE-Tag: 1701227548-862907 X-HE-Meta: U2FsdGVkX18brY/2fqzq2hovsNgxK/J8e6Wq8WZSz8ZiB9drsPjhDKTS2LuGzjjNW9eYzicmPo4+wGbsqQz2xl1awMJxuHXiNqySt8jtmrpmxCkSdScGC9dpNm5ifEdQO+ufl3sPpZkK6ldMyT+n2y5KsJ0Mxli3Pa+tZnO3FmebpQfVhRz8EaDhpm8m9/Zzh2cGpvc8Zl8mtDvQyjNxCeFb3ZPteeYRe6Bw+4gDhw5EOd4gBOXh4Id93vWC6Vzxs+ZXbrMqF4Vmdd5BxQAMdEqqMdikY4w9g2mvUOk26MGxp8gEKZV8/IY+gA4jGC0N5FueqKmZaAOx9I/EX3d4Z+cCChamHyhN9/E7pIKsSjfYXJwRe6TtD0kS4l5VetF2Slh1OLhd2BnhIV0AzccY6JyzL5RsuNMPhK1Nfry0/DhvRoLqdCd2fRpg50k1E7hklOoOALgq2ngT+8fL5sAVaT5KUSlGfAIZQSBnarAK5eilVZGadaPz5rpc0xLdukeSy7Frf+uGm230CId5V2suPtGyu3ggpzIcMLE+hlCN3hCJJOe8K5hxTEd9//aw+HQVNzH0RejF29d/bll5dT8MF3BzDIRFMdveL95S6gZ8QKGglWlYzGNzWzWFxk3erg7+zjdjNyOpwCsfz9NHyzAYuZN8eMiZa4jOmR2FyLJoDlRsArwSgY8yIhCcNb+vz+8lOfugzHRdXver4vjULkY3K2/UvP3sLI/lwFaHpJhV70nhzGDsZ0X17WUH16dTbUHXKR+A1kzk7pH8RPRO+pzWcY/oAXoLZw/kUP987m35Gl0OOT48lq094dPxkH/2pOWVPpJzTBk8En3z2Q+8MiDN/COmBm9kZs5ECLfZuJ0Y1mT08gjzOejZ2kOCAhrgJBItKpRQbfITjVQPOWmi69bvlZo2Ui8H4vAG/ihcv8UccdSrcUoj4ELT0tAM6qPgvnHIDA83S15kjcMOUstT7wd uj5yfoOL iyGP/9FYrGh32P5AIPXtfavL5nUDo+8rwdP/fl8rdPNI9aTlHIXno3BT4Un7GdIs80aWHYKARKD7HJX3d4OLDOY1AhpXEFntjMXMMtQsIMdT2eGLm9F4Ke5L9bTYtdX4LEdGpWAYxjUef4BrmmuEqKNBvdZlNfQVjfp2kSH19Sz2n5HRFcb1MLidzNlII6nXGHzY/Pmf393vev1iLDz4FdHwoSXAHxZvEDvnzC+PNRgtIUVwemgv/pS7o2sGGWdih1rTt9wcYD8BGWQSdTGHPE+A3qK7uaCjIvlB2M4f4Mo+rHQmJ22NwlZ2C7TNpcPzpgoCxQHDXh8HMjzhztw9JqA8EfKUzHKc+W+axwMXRCqZge5bmR60FoNIbo46p36CAN9bBXYmKO1tqvl1qpEOlcDF/fpN3VyT1CbZHYB6y98rWpxdIFLL8+uLjuYHCnBwVk0WsYHrwttgBlHFeTzzNpqF7g2UJT7iue/9/xPOXGWKmkKolYIewDOFeXC133rdVev+CM4d9kx+FT4AlIOBGGSBS4A== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000034, 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: - use page_pool_unref_page instead of page_pool_deref_page - leave pp page checking logic in skbuff.c Liang Chen (4): page_pool: Rename pp_frag_count to pp_ref_count 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 | 45 +++++++++-------- include/net/page_pool/types.h | 2 +- net/core/page_pool.c | 14 +++--- net/core/skbuff.c | 48 ++++++++++++++----- 6 files changed, 71 insertions(+), 44 deletions(-) -- 2.31.1