Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp22464440rwd; Fri, 30 Jun 2023 08:18:44 -0700 (PDT) X-Google-Smtp-Source: APBJJlGuTKoCH7JJKK6bmo/eXegkBiTx1iw1g8dbE87JfrDdRtEr8aqL32JwmA2g1D+L0HEkSAfv X-Received: by 2002:a05:6a00:b93:b0:668:711a:7d93 with SMTP id g19-20020a056a000b9300b00668711a7d93mr3063638pfj.19.1688138324022; Fri, 30 Jun 2023 08:18:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688138324; cv=none; d=google.com; s=arc-20160816; b=NN0I+5hB4WhT5Su9eTuhQzPpSGLO9y3AohyWKl6f2p0+XljyT8YxmDdt93q9rXCf7Q 26UXDAzvz+rUm+p3n1SpowmC0aJAqTyuATFM824cYpdtjd763okC7vgGzPfZ+nMVO/0S OHwa0ID+7v4Lu65ISPSeGmXWv7S0KYJfHnMyqlu/sPKDb4uZUrr/oeYltbJ7Z1UdWe1t mQ9VbE3eD/YJHGqIghlwNh4OH1yHGtFy9WAe58ZT9bVmMZA4sIcCnsuTeGccpCJYodeU HOf3OHySb0H9GXPF+Pyef/S+8avoqAalOkBZZdVIdJrtiUCr/kGyAmyDb3IOKBJBsnzE T8jg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=qJ6dAaTmXC8YvTGPcO1hUCIEXunyHjIMen2eUlluveE=; fh=objW75j68hU5zMN0iPQJJZsnITz/jGoDU5VUs1/hRsA=; b=tnPSB71f/rtWsgoseCWiY0+avaJzPJyFAhdABLKM8jmlUJyvMhAevd0RfpAIG7ED2l uHHH9SNDXde9NHeywsGu+XV3nc/5e7x4eXluliRi7C7plCoBwmcb7jN0jnuZrx2vEFw/ /iHyz8GbTKxGXDNTTykrAnMp2EvW42fq3nrQsdELatmMgMIymx5M66rKIUGTpMAUA/lN VB1cu6CNe1m+NfEiNqqRzuZYsTZ0wPsyiSNZDrpL3G4VaJz7QgbM7RVzq1+bhiFGLrw/ d/VnPZG0ioxgDsvVGbb5KPGfCoc55DApwkQwzbs7f8D7aVGAQ7VWdKhphf/D+2HEsey6 fdMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20221208 header.b=hT6ZzhGq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r36-20020a634424000000b005429411d104si13215748pga.897.2023.06.30.08.18.31; Fri, 30 Jun 2023 08:18:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20221208 header.b=hT6ZzhGq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231906AbjF3PLn (ORCPT + 99 others); Fri, 30 Jun 2023 11:11:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33242 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230455AbjF3PLl (ORCPT ); Fri, 30 Jun 2023 11:11:41 -0400 Received: from mail-il1-x132.google.com (mail-il1-x132.google.com [IPv6:2607:f8b0:4864:20::132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9A69EE5E; Fri, 30 Jun 2023 08:11:40 -0700 (PDT) Received: by mail-il1-x132.google.com with SMTP id e9e14a558f8ab-341cb9528f5so8429005ab.1; Fri, 30 Jun 2023 08:11:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1688137900; x=1690729900; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=qJ6dAaTmXC8YvTGPcO1hUCIEXunyHjIMen2eUlluveE=; b=hT6ZzhGq8qtqn3PTryDBxi/iXTrK8wgzKBz2hLhguFWqQcZ/nt0qpknHTQT8ovUdyN /NPTeCds5QGtnoZJw1srTMAjcnlCcFr5yy3o9AT0BQfsU2gqlV/4ouUchiOH37N6QOTc 5viTLxaULslF+jDSHGlyTKCd0dbnqv+PObcuU7snn+4qkXkOnvYIMLLEqLS7cW20E8p7 CA0z7zFz+0rgWBHw0GZm4ujC2vqZUpgkgS8PE/FqHeyneLMhF0k5E9hqFyFTTymCqE3r HjmkrW5bMBjlDp7vdxFmSETdSdicVCsnJx7KJRVsLrVUp0vHUvR5ZctKHX1d2R8XUYsT oqKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688137900; x=1690729900; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qJ6dAaTmXC8YvTGPcO1hUCIEXunyHjIMen2eUlluveE=; b=TX+RmgDX1LhJVnD1ePY9y1qp1i9LWCTF7QRmiDYD/AZx0ys3iGzgW5bKKqVWaRChX/ PRM1CMYKowdGgpzYtxDXfYF8gM2mJqJtA32bOXuckusr/2luMvBHH8IlZNjeWSL7R8R5 5tIED6wUXnVf5T9bacfHnLwaqAtYtIaPCdEyRV47QBXIGiQBq/y68bftOcfwdd4F34pZ +Pci2pmFQCisx8tALR6gItRCCpdGcN/IUyONdNMmHsOLfgey8ZHk3VwOmFyZpB73yvgZ c+fHCW6oCPyJwvcaQSaLU0ZrVg2DshBSfxXQjrGtN72tvFy/G4jiYNV9S1WXPwV0ClOB o2kQ== X-Gm-Message-State: ABy/qLb099sdc8RPfXkHkmwjUPJyRZRVIf/XJ7aLZ+roQL8RxHZVddi6 pyEFEx8t7bXll9F/qr344cCYrTnIcDmW1FULnQg= X-Received: by 2002:a92:c70b:0:b0:345:cf3f:2fd with SMTP id a11-20020a92c70b000000b00345cf3f02fdmr2486298ilp.13.1688137899763; Fri, 30 Jun 2023 08:11:39 -0700 (PDT) MIME-Version: 1.0 References: <20230629152305.905962-1-aleksander.lobakin@intel.com> <20230629152305.905962-2-aleksander.lobakin@intel.com> <6d79614b-1258-08be-1bd8-cb02ffd9dc6e@intel.com> In-Reply-To: <6d79614b-1258-08be-1bd8-cb02ffd9dc6e@intel.com> From: Alexander Duyck Date: Fri, 30 Jun 2023 08:11:02 -0700 Message-ID: Subject: Re: [PATCH RFC net-next 1/4] net: skbuff: don't include to To: Alexander Lobakin Cc: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Maciej Fijalkowski , Larysa Zaremba , Yunsheng Lin , Alexander Duyck , Jesper Dangaard Brouer , Ilias Apalodimas , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jun 30, 2023 at 5:39=E2=80=AFAM Alexander Lobakin wrote: > > From: Alexander H Duyck > Date: Thu, 29 Jun 2023 09:55:15 -0700 > > > On Thu, 2023-06-29 at 17:23 +0200, Alexander Lobakin wrote: > >> Currently, touching triggers a rebuild of more than > >> a half of the kernel. That's because it's included in = . > >> And each new include to page_pool.h adds more [useless] data for the > >> toolchain to process per each source file from that pile. > > [...] > > >> +bool page_pool_return_skb_page(struct page *page, bool napi_safe) > >> +{ > >> + struct napi_struct *napi; > >> + struct page_pool *pp; > >> + bool allow_direct; > >> + > >> + page =3D compound_head(page); > >> + pp =3D page->pp; > > > > So this is just assuming that any page we pass thru is a page pool > > page. The problem is there may be some other pointer stored here that > > could cause issues. > > But that is exactly what you suggested in the previous revision's > thread... Hey! :D > > "I suspect we could look at pulling parts of it out as well. The > pp_magic check should always be succeeding unless we have pages getting > routed the wrong way somewhere. So maybe we should look at pulling it > out and moving it to another part of the path such as > __page_pool_put_page() and making it a bit more visible to catch those > cases". Yeah, I have had a few off days recently, amazing what happens when you are running on only a few hours of sleep.. :-/ Anyway, as I was saying it might make sense to wrap the whole thing up as a page pool accessor that would return NULL if the MAGIC value isn't present. Alternatively one other possibility would be to look at creating an inline function here that could check to see if the skb_frag is page pool and then just keep that in sk_buff.h since it looks like it should only need to rely on the page struct and PP_SIGNATURE which is a poison.h value. With that napi_frag_unref could avoid an unnecessary trip into the page_pool_return_skb_page function entirely if it isn't a page pool page and we could look at dropping the return value from page_pool_return_skb_page entirely. > Anyway, since some drivers still mix PP pages with non-PP ones (mt76 > IIRC, maybe more), I feel the check for magic is still relevant. I just > believed you and forgot about that T.T Yeah, sorry about that, my bad. I was a bit too focused on the main drivers we use and not thinking outside the box enough.