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 995DFC4332F for ; Thu, 14 Dec 2023 04:29:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 31D6D8D008F; Wed, 13 Dec 2023 23:29:56 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2CE5F8D0083; Wed, 13 Dec 2023 23:29:56 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1974E8D008F; Wed, 13 Dec 2023 23:29:56 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 09F1F8D0083 for ; Wed, 13 Dec 2023 23:29:56 -0500 (EST) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id CE458403DF for ; Thu, 14 Dec 2023 04:29:54 +0000 (UTC) X-FDA: 81564145908.26.F818449 Received: from mail-oo1-f43.google.com (mail-oo1-f43.google.com [209.85.161.43]) by imf20.hostedemail.com (Postfix) with ESMTP id 1FE671C000A for ; Thu, 14 Dec 2023 04:29:52 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=TIC3pXew; spf=pass (imf20.hostedemail.com: domain of liangchen.linux@gmail.com designates 209.85.161.43 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=1702528193; 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=/P4O4U+4wwAViywlkF3MrzqbKZwnRskxbSLZcAXpF5Q=; b=dTAda6VI/+3mGDyImRLIfjfPKrfYDNz+bBetsgoWEvqruTmjgTB+9V1VcvXJT+pjUIJDeq 19oOTQ2agR6ieZmL6dNrvwBIEOHKava5zTFJIsnaynhokQfULkr/4y/YMU5f28ma/c6bxQ poChfk0PW7PQD8aIc7AThRKyCo3CiIU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702528193; a=rsa-sha256; cv=none; b=YqxKsebzO0edIb6/lb3sDmBUmufx82PP540U5ElfRILaQxNvB/cf+wTC8AvBLYiVRT9HmV iJLO9A5ekSOqblYqvIeVJtyl4nGFW4SBIHJFvwgy49lRab+U4keQ5bx8sz0km3qhwca7gh HPj/CrLHDT5Bj4c1Ej+VOLEHdFXQN3Y= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=TIC3pXew; spf=pass (imf20.hostedemail.com: domain of liangchen.linux@gmail.com designates 209.85.161.43 as permitted sender) smtp.mailfrom=liangchen.linux@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-oo1-f43.google.com with SMTP id 006d021491bc7-58d06bfadf8so4962307eaf.1 for ; Wed, 13 Dec 2023 20:29:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702528192; x=1703132992; 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=/P4O4U+4wwAViywlkF3MrzqbKZwnRskxbSLZcAXpF5Q=; b=TIC3pXewGd47ltsBRd/B6TUcn7r836PawhwTX9E/yBBnqgPrra/1f/GuNuGBg/CLbB Z8kjDFBfLj0THSRHRQ97EsXYRe8tFwihsbJItp/8fEwmrOGRlWBABesrQnbzErhWBsgc 0TcrahfuFAz0apYQAnoSelNRbTmclFMfK/PiT0y4FCvPJlX+Wkk57gc/TM4z36mwiD9R 53lxrKYNV2Zrvc4GF/InqABQRoy9Qyb55UsQkzED2Ka8RokNFCvLumRNFt03bKbsSKnL SZeQrkpk8yfHwTeuoIfOAo0HcUbDoGQJmVaNxmMg1T/JSQGp8RSlFDSQDXnxv7x9su81 x9tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702528192; x=1703132992; 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=/P4O4U+4wwAViywlkF3MrzqbKZwnRskxbSLZcAXpF5Q=; b=F/87WE0ilDF/xJbIRJMRGKYa9F0rVvbPkl4YB26OSj1S7TndbgQ/mU8HK8NcgG9f3A bx0ifEH3WzmlMS6edJe3EED5f3tx/bctDLAqW/4fGuPWj0/oJdrh1KpSWbOfPqLUnPOP tMm6Kn6RtI2R54ihHPrBbohBp9Qva8qaJe4clBR3h8vUr5pxPYAJHxU6/sb9DF1D9S18 u7ceyC0MTcno52z+WNEW8QmwMpN/QhcaCLq6GrkCrec0V36/OnDurH51NTNgipT4ffy4 arm/ly5XWuuGnos69Ft0XAxcVwWqMraTdkXgiOuLus3T13TZH6f8cwuobPR4TF7qz2uY lXIw== X-Gm-Message-State: AOJu0YxpUy4SOIf56XezfWxcxg1fprvlqyA/XcICyyfeX+rXnD1kNS+2 qS5whGS+Gahr1l4I6u7On1g= X-Google-Smtp-Source: AGHT+IEur+yWhjU6Vv6HWv6uXSEGkSw86rCi6FXG9xvOI6PEPZLg++Pg7KxpwlZfPt7M4jZUitoIGQ== X-Received: by 2002:a05:6358:2c93:b0:170:c991:d419 with SMTP id l19-20020a0563582c9300b00170c991d419mr10167940rwm.48.1702528192081; Wed, 13 Dec 2023 20:29:52 -0800 (PST) Received: from localhost.localdomain ([23.104.213.5]) by smtp.gmail.com with ESMTPSA id jg13-20020a17090326cd00b001cc8cf4ad16sm374412plb.246.2023.12.13.20.29.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 Dec 2023 20:29:50 -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 v10 0/4] skbuff: Optimize SKB coalescing for page pool Date: Thu, 14 Dec 2023 12:28:30 +0800 Message-Id: <20231214042833.21316-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: 1FE671C000A X-Rspam-User: X-Stat-Signature: gpni3q6seysoiods4zbrjtdrjo7om6w3 X-Rspamd-Server: rspam03 X-HE-Tag: 1702528192-204559 X-HE-Meta: U2FsdGVkX1/nJFoIjRbMoMTh5QrMSrRf4a14ObmiAeuui8Fb24RRyY7qcoratfCKvHsGJWJfQkUfLxKbNEl4wRBxc2vNPE4XrfzCGAmjzjF0icw8TZdos2kMDtzTVfI398+oIFsrnJTygzTyRy6oHBeZ6hFcvL2p+/bTwLNkBI4k/PqwdOkDGzoVmlKRFcGCO6E5ee9MEHh+fhE//duZl+8SVq5CkDR1cB+I6QdWT39BV4BdOnDgpTXKYMXImBFFPkNsR+utl2545VftwOlIyqlI8yFCiqQxqNAC+sjxFEJeQ7fDyrXm8oJTSjcXCUAKmXFB6026J3yldEIn4wU0C//ZJtjsSNMrEq2w4iFbzKk+Reu6ykFgWFPV6GvSdqcoCgFsXKH8Iglg4fjHzerelz0/piMkg0bRAkOESOFj89p974MkNd866ADzP5nCsaBmm75r2+k3DpQ83DUh4SLha9VAke3B22Jsqzmsc0lEBal+1XGwU2TwaUvoE3pokJQYC47kFgMgMCPpXrX4AFwBfpx3oVfB1LR0kXD0PC1cjIVli2IDNbbD+gfPCbVZFQFyLU3VYstomK8wFaDbG5L/sKfWAwwWYKTQIwUUkoTdKkSxWlVcaY0EOBs+SbQzmXUftRft9Uc4qwtTxGMLASDoj14w9jT6C53eoelE/aibvFl5ADle2hDE9mxe3qp9GUKLCLRDq0tcAs5ATTnlfD/WwR1abwfFYGC0l+ON1bUd3u7dUAsN0dhTJMvYgb1QXiAt+l9HXYI3EpXvkubAk25XrKC22XKxtcedE+g/4qp5TT/BNN8LowwmSm9/N/gIRClj9HGa054VSzz1fCsahwTjbEow3LqJlCmXKKpu6wUbWqiXTdWeSX3R/P/zpT7bjCx7Rw3qB59mpNLfkl8+KShzZVa94gV0cekv2ET8+jKq2xJih+mu/Gjn4arPwoGM13bEUcPpVk0CsZOTPvmVPi/ HIUGUKTM nSCeJsHzMXs83KfUVTSlZ+mOSl63aZZIC1K+tjhHGY6zprWZxwR15yHxUZnmQByF+S6V9Ha8xoAsmUbrPS4lpvsBeTNpkMJLT7Oo5Lfcu5dWQcEWbXB/vt/OvmjD8p4QRz18KE4ZQqeTahC7NbPLsOhhuMN6DchO4NTTKffbbPpseCbpKV6Wyj5fQnX0HfNmXEfcn7PrT61isrwvR44gEPC33RgJI8QZFRNtCMzdFs23wOGyiMQFMLrkyOnpMT44AtVe+4jan8RXTDz26HWsVp7fgjDsWA5pMLnwZSNllkTkDVaeP3bjCgHoAWtwctAL767xaGEZFcBQVHSGeMG8c0oymV73IvDLO5rqbieQTVCNtg0Xs2sngMcWpdgJOZuZ78rogInnp91sG8JoQS4svJEJYLMIp5MQDYeGnwRqGJdmOTxE9u6BoazKkKdRUdMTnWRGB8UROQZUhv0PIiuRptX4ju5UKgrOY+WR7reQcip++gGIMvypXQxh5fNdKXP26YIi+nuFTmicnd/GTzMBHcfKEyw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.006948, 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 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 (4): page_pool: transition to reference count management after page draining (already applied) 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 | 59 +++++++++++++---- 6 files changed, 98 insertions(+), 52 deletions(-) -- 2.31.1