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 B6092C07CA9 for ; Thu, 30 Nov 2023 11:59:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 439086B044B; Thu, 30 Nov 2023 06:59:16 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3E8E36B044D; Thu, 30 Nov 2023 06:59:16 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2B0AD6B0451; Thu, 30 Nov 2023 06:59:16 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 19A676B044B for ; Thu, 30 Nov 2023 06:59:16 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id D4C3EA0179 for ; Thu, 30 Nov 2023 11:59:15 +0000 (UTC) X-FDA: 81514475070.12.89385D2 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) by imf09.hostedemail.com (Postfix) with ESMTP id 1853714000A for ; Thu, 30 Nov 2023 11:59:13 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="RKuTN2/g"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf09.hostedemail.com: domain of liangchen.linux@gmail.com designates 209.85.214.175 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=1701345554; 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=TgQzV2hMqysydijjOBBVYAfd7c5Y+94qieNr1NTOzhw=; b=PTgF1UfH2IciZHGRm98u33dPNvI6lBjiARqUkHRsJnFWgiYPLO1+0bk6gfJuARkDTYmE2p Z9N3jYSb6Bl+Gvu0tpCyOOJ9T6zlBOx3qMwXfWRfZJzTZQxTKI7/lrl2Hc/HUPbtE4278n pqaYk/0P3sylDALqSLVSbivNhJ51kh8= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="RKuTN2/g"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf09.hostedemail.com: domain of liangchen.linux@gmail.com designates 209.85.214.175 as permitted sender) smtp.mailfrom=liangchen.linux@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701345554; a=rsa-sha256; cv=none; b=MVb1k5aUMjtXN42TP+WOUTKsaK8tAzEBGmH4i2AkjgPsieglUYzHGidDLUHG7hPGYl0B6e FQUcC4SCn913V36q4vIcez9FEEvN78LTxMlA8OsfSG0KoYSUxZE45N28q6d8bi8yvbSezF iP8SjYRhCbYWFroew6/DfLNtaK9hG+o= Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-1cf7a8ab047so7809935ad.1 for ; Thu, 30 Nov 2023 03:59:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701345553; x=1701950353; 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=TgQzV2hMqysydijjOBBVYAfd7c5Y+94qieNr1NTOzhw=; b=RKuTN2/gF9V5VZTRKGUKa5zwPyWE7rAd+oWUaEQMHa/grIYEgoWIlLD3vXzm2QZf4v QOhyr9EbFH3vJDfrRRYcG8uFW1uDGsmbBzKFT98jz2i70/1dDPMShbKhV46QS3s/UOIW pMqGaga1+sPVdQxZwMcYp3YlBG0mTfvqUEFULFDKyC/OUVBAKs4p3FfjFWEu6l8mFuD2 WcRUG5hsS7WRVyU711h0BcK45mrFpnwHdePiYhNVzy9Fq45HQIUkbs7qAEHL7+nOdeac yr1GmFNRN2rGAWZH9SVsuFkwhYAD79JL5Se5WhWWwu7jd4y5Md/JPQqhMdvbDK2dbVwd Z9tQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701345553; x=1701950353; 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=TgQzV2hMqysydijjOBBVYAfd7c5Y+94qieNr1NTOzhw=; b=tJPumOLdvTJHs7eoqAo6qnbl0rqyPt5dfB2cy1KZLg89wCe2SG5yM2T04nVSvohyeM pPsPOt5B8+Xt7A61bTl2/h/p3vfnZIpkaFleu2OIKVNQJVurhfqA8k3fbEZH+R/9UN2y K5zt6yMR3AnEWurqI4V87kAUbjDIdccxfMkLXT5eTgTCOK+76jUzocjZQTO9nMdGUAB5 Pxbi/BpmItBHIgVGCcM54qFvMz8Bg4lkNwO6LlSlx3ls1QC/Ih7vajTu/E4TQ+hrwbxW C8RR5hTBIXKhJHmPcvKKInLu4xq1PmiWTJkZWsyRavchluGE2tlk8HeWAlc52GAWrtRI uT9Q== X-Gm-Message-State: AOJu0YzjtIqhAdLs/ml86fd8FnpxOOAishiTtoXHZTFjQtJm0R+OfiaO hRzUZl11GW8CkfEl5xotxUA= X-Google-Smtp-Source: AGHT+IHU533khUVPT7MjRqJYmno6ktd21A3+gDUpoDKKVA6r6F5dc4QixCtBLnyKX57wRygZya4qhw== X-Received: by 2002:a17:902:e744:b0:1cf:bd98:633b with SMTP id p4-20020a170902e74400b001cfbd98633bmr17541902plf.64.1701345552764; Thu, 30 Nov 2023 03:59:12 -0800 (PST) Received: from localhost.localdomain ([89.187.161.180]) by smtp.gmail.com with ESMTPSA id e10-20020a170902b78a00b001cfa718039bsm472530pls.216.2023.11.30.03.59.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Nov 2023 03:59:11 -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, liangchen.linux@gmail.com Subject: [PATCH net-next v6 0/4] skbuff: Optimize SKB coalescing for page pool Date: Thu, 30 Nov 2023 19:56:07 +0800 Message-Id: <20231130115611.6632-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: 1853714000A X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: fqbxpm9nnky73zhrqne4dk9g9xi6eeew X-HE-Tag: 1701345553-324513 X-HE-Meta: U2FsdGVkX18YERzizv/QAH+/mCk6PZj2vOOhE14E5TCJymcjOM5yaL6nWo5oxMezlkZcWq8exr6HHdsY61VTcy8YWG/F7NDz2vzLPDe/HiPcY5cxxBi7XmPJ1g5NrelLK3CL0wfWOTuNTwjY4FbWaPDQdErYd3mk06Qrnw/4qZwm++bqwsDnHpPsmmnZGpxhjY3lcv9lK335UPCn0HtbD1KsfD5GvmczbU6s43Z5D45f/mEBLMkSv2EnDX6RSJY5B9v09BTE0iUe+0OqkHsB/LRIJx2BHsdrroa0ZbguRIs47KkFroFhPcQQ7wO1U0FkBw81jNPmnLTBWrrPI+bK5zZQ5gFA+vPKIwfUxAGm/qat3Rs/UqQHR3csJn/ZNgGMFULivCTNQV9Mt8VXm7s/Gp45faCFGZxSjMBVItnYasKhOLt+9qNinPJqrDRwkdaUwc/LKPzyDIwssdi/DFGoaXTByuLhirsrCzeG6+nbZqklZbd0zgF5Sv8/tuZDl8naXHH2hj6/ctgxsHOGYc5yI0PaGUfLQ0WtCxa7E1DVllATcZex8MP8dLvu2EBq7D+BT3xGeYnPJmCIf70HS4y9aHdK3CREOEG0Ry2Khcsy8VVLmAEQeu+vYIHxeJElBiNO657NjSw8MV2gI1L/nwKDxc45scPREQiBvDC3VjVyf/be/ThbyRbm4koEMBySkQAR2MwMzl8PQ561hy8HNShm7oFjEoyHSLcurIyGE4F5nckURl1gK4LB13jHykpFokrcBGp3A5GJkgs8QieIiIMAef5q/D8LkpbFz6Wy2CpxBAdLv2kkM9IF98KNGjoE0oOKNJ/p9CpnyDvcTnCJ050I9Jaqd8rT48+q/iZSIaVVyLSSESVzV3xlxyO+9SAiVPNCuYXtpmrIPOzxN41Vd7w3fSlQ+c3fuBEvYmP1vj7nc1TFewcXTgF1YF/+Uv6CwgGY9bxIUlbqIlw8rHjNGgw SvwPZiPN o9dSl0o/DEGHPQ4GPOGg5O4RruriOOE8O1U1GBLjkOuN7Ul7i820BNqIHhaSlTQMtM59EgumnH7Kjs+pJtfJFUM+Z6sdYnyUpcwznxsPJHPajOSJpy5Dt/d/Cqi9TFp7PWnEBlI0f3JRJwthC61mkdRDi9axUZHC0tNAPu7ayX3/Dyw/QseVWhhfUQx71hn/vdJsRQuTtDecKRXR2l/f2eyNQ6k6DCnsNK8KcN6/1sms4yqgOORkCHehUwRQy+73wNh+NzQgYfYutsP29Gfoe72YLJHdLhyFPllLuRrTLlc0ucyDUXDB4fvmcrzucXlKLLs4ZffQM8mdEgXEVNRoF6/4JrDKvu+E0Iq69XInFT0+0p7QoCG1Vrz9UZFU0VqHO7fxsAb1HFSQcoj57ZyVK+Me+bU8fCXSIPQj+uOcLpwlb0u84+B81xw6l63AZyKS8Hn4Gm2f9Pc3hh4hauBbgzZyTMzJaap4QHxKkmzArvT9G1A3Zm0OshbNX3/AI5Q+VHoTNdWIbdZPL90/DQLnN3CAydg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000992, 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 v5: - fix a style issue 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 | 50 +++++++++++-------- include/net/page_pool/types.h | 6 +-- net/core/page_pool.c | 14 +++--- net/core/skbuff.c | 48 +++++++++++++----- 6 files changed, 78 insertions(+), 46 deletions(-) -- 2.31.1