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 3BA50D374BF for ; Fri, 18 Oct 2024 16:44:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B8C186B007B; Fri, 18 Oct 2024 12:44:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B3C086B0082; Fri, 18 Oct 2024 12:44:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A2A4D6B0083; Fri, 18 Oct 2024 12:44:20 -0400 (EDT) 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 868996B007B for ; Fri, 18 Oct 2024 12:44:20 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id E02C2C0572 for ; Fri, 18 Oct 2024 16:44:06 +0000 (UTC) X-FDA: 82687295712.02.ACD09E3 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) by imf25.hostedemail.com (Postfix) with ESMTP id 44C03A002A for ; Fri, 18 Oct 2024 16:44:10 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=TkaF7Fqg; spf=pass (imf25.hostedemail.com: domain of alexander.duyck@gmail.com designates 209.85.221.49 as permitted sender) smtp.mailfrom=alexander.duyck@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=1729269783; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=uWl4vwvAh8HLD6ILzYh/UBNdyFdrLz+RA3DAXkRuzZQ=; b=ujGmVPoDONA9yKAe5Y7p6WH4WukqbOst01Mm8fBlzIQ6mdOYdeasKx/gJqh2V3FA68/UWf 2DWSQM3idwPGtJ2VhdTrN7dz9IghJ8e9FcUbnjl8Eu3bH9ByrmC82ruocO7qcTtNC0Hmpa 2Vp6jaGcaJM+t8P1m6z6QBsjYPEmDOI= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=TkaF7Fqg; spf=pass (imf25.hostedemail.com: domain of alexander.duyck@gmail.com designates 209.85.221.49 as permitted sender) smtp.mailfrom=alexander.duyck@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729269783; a=rsa-sha256; cv=none; b=j79CjKeQSQNGh6g6RVOPg8NhZmx1OJ8NPwE7I+W8nJ5HKlq/SmjSLBzHNx+ECH9leBSVfi +ci3lokCqz5KWrJZBwUGTKQDTbm+O8BF8K/xWMRaea3XkcCHpyoGyNdlZdqgtcRT0Rge1o f/yQDs5EtdGmybHOn8jExU1jPgkWV3M= Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-37d58377339so2466807f8f.1 for ; Fri, 18 Oct 2024 09:44:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1729269856; x=1729874656; darn=kvack.org; 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=uWl4vwvAh8HLD6ILzYh/UBNdyFdrLz+RA3DAXkRuzZQ=; b=TkaF7FqgGD37p39zBPf79PdV+8Zwme350SAYL/SB6RyuHUq+mFCWp9o7QvoJkid+W8 lRx97hXmk3X/dJOSiLInHV/0D/z/ZsR4fvcVYEJQcCfnv66g+/2A9TsBiM83ZkmeZXPb h9LK0Z80R9fN3aUS2TbpHPHou2+I83NEL30zH8TMfdbWlyFAStqXENWSnwNparjK8SXn D55h4HtXiVN+m3NBlPaRd9UrdjRWm9CE0b1kCK+auvxEb64FKbHaibVAfrizZvoU+Qbv /YbP3b7Q/DY7cA4W6Mab/29u2j2Pgt9YhvMC9qy32KWPewIeq/2RbmwsyNSt6oSIJF82 hYww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729269856; x=1729874656; 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=uWl4vwvAh8HLD6ILzYh/UBNdyFdrLz+RA3DAXkRuzZQ=; b=MHoMvO23VQHBpW2VuQmAbtL4Ibv6ba7NPJFJTVsrVygfxrjN4XaLqpBh3cHVdufUDF cD1WTEh0oa5WL/usmjnTc0iPk+T8jyA1SRWKBv6Rs9soVylaQOlsFtXp/mbYn6elJmHQ YPBziD3/SmIPJeE8+/HDLgV3SGl38JECwDK8qlAcpSAsVdpivXtjn+gokWpwIXH0SHwu mfVLWmG6xy4fP+qV2X7O2TItGp8a3wfP5duVaXCgwAIWnXuQOAD4KXcmbLIgnS3ebEZ2 CgPuI4wxYIBUcxgro5OYjQgRKQmVBMwD/u+EhMJRXuC4WrR5VMxdP/GuNNdzi6QV+d/R qbhQ== X-Forwarded-Encrypted: i=1; AJvYcCUA4hA0qG8xTnrLzFFMVjn6RcsCkv/GEploPRU9zWLskXM/LO4L972nJMA1mgs1m3iW+w2Fp3tccg==@kvack.org X-Gm-Message-State: AOJu0Yy024EQ6SzEhHQl2O17CjlveQu6NZBcKIBvYvb88N8hc47lsf/J wYWZc4p7XG5hiN39u0j100gmZzCOrcpcAeikUW0BfEmq9lddn4l2OFhFoJAmuANAW1vDReRBm4V JtGvpdNG2wjBGIeXIoAzA/Wf4WII= X-Google-Smtp-Source: AGHT+IFf2G5spSchWpeavSmG/OnsSCNtNLpcSFQVXAbkWUbwyMeD0amC4cgYpYz31441HLo2GOpOQu/F+++241WYfN8= X-Received: by 2002:a5d:5234:0:b0:37c:c832:cf95 with SMTP id ffacd0b85a97d-37eb47688b9mr3247595f8f.50.1729269856270; Fri, 18 Oct 2024 09:44:16 -0700 (PDT) MIME-Version: 1.0 References: <20241018105351.1960345-1-linyunsheng@huawei.com> <20241018105351.1960345-7-linyunsheng@huawei.com> In-Reply-To: <20241018105351.1960345-7-linyunsheng@huawei.com> From: Alexander Duyck Date: Fri, 18 Oct 2024 09:43:39 -0700 Message-ID: Subject: Re: [PATCH net-next v22 06/14] mm: page_frag: reuse existing space for 'size' and 'pfmemalloc' To: Yunsheng Lin Cc: davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Andrew Morton , linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 44C03A002A X-Stat-Signature: dr971utsmjuqs31g1uw1hmc6yjngyxu6 X-HE-Tag: 1729269850-646861 X-HE-Meta: U2FsdGVkX1/Hv62iR3QmhQKugChTcn9BiowGqBynVWo1THCZpSSFadBb4Mj62kAUh4DxcTNacia0Wcjz0QkIGfAL6ts0ETYqH0TpsfRn4bBRVERzqlN8xYOAK8WZmr8UdeZX1L1N8/BXqEWEYo2kGcDwllsuW7/MCRhKcTbDgBPWG+eszi7njZosuF+oQQemNxrE41iVc0TXijkjlvza6Kn0ZdwVa8jtaeSzOx0CZ4q/hiHXNOHqkc2Vr1nyG2KX/tsw/RJZeblg2htgLxLoAk19mlkmtkuLT3tX0uX1Bgj1D6VccE+NqF6y37bPeNufrbRtgWdprMbzkvqDH+AMfUGMFRFHaH++nTuio4GKYnDfOlnedzhGA4yHKbeu31qkkwP8vXV4+0vVHv6+QD/9+rfKGgFNZ57CWo1+kaezLwGE8Eot2Q236erGb18lFfI5vWOtCHotEJ+Lvjgco96F9NqHIzwySH8pd59qkhB61Bm6RKT3dYeqzAkjvWv33OIwWWdFhQ8JtLey4K0a0B4QQB3flQ5D1EtXLW6JiULrdw9DzMwCagBf+rzLa2DF+jf/MM85OgoA54ObLxa1clNiBgCrz1ZYNVq6t06/JTrbTG0qmEfN7J3ZmTlFJFaBC2ah3vwKVIn8cEoGGPYzhLClsp+a5u/qNhjtZuz8ZDCjlaUpHD9Z2N/TTUOFUoCSqpIrlW/9GF68rqdhj5yt552XIqTYfxNjxoQoEySxMXWtsug/AoYd5nH7OkiMZBsFMlUXsHesYkN01mtfLjKe5xRbN/evQHRqeDvZslML2jA3WPuy8eE0B0R5G9wJS3WsZ+zEz08okckZsudIocl4URhR3FYjtny30VDWevp0docdE01T/vUrXrL9PVTIQ+4LRIkiZLT0+UTSEeplbDkp/Gom+JmXDI1JlUzIpb7qV2eAOxfWd86bl/Qj0GekWnx7e6WlBSuc9X1iSf3O71Fz015 aboQaK27 ueAUa6a3FZZnfntEwuCkcWqsV24F7DNAhx2JFOPQRkXEvFV/1gtGRuLDgNvzRXwY3owSbmF3T/kYnclUSlzrMMeQRYoN1UyIp1jXWChgYOGK/4auqFR+S7wbpivZ7e0mqXQ3FyDGFy+cdUguXmhGGmlYLjv8WL9uZTqNf8qoAeJoklwGmCFyArf/aC/3SdSG4dlHc6MDTBbs8JKJFjGEguT11iXUeREMSU0hVmDbnhf5PrQbod4XpwDvA+SKB5RBuExCDS6uDSpnwxBpI0K35SL71EyNM9CcmW9c2WT2EmUv9LPOaG52+BCheS62nV0BWHcAUeiZfzObr8csvwT7dvea+eDmHYLjXiW8LK1Z+M7rzRYubSeEvG61jNJU8yDft82AOXmbDp8Z5Zp+dMrxjMDeK/aHqgwrvVSZifm/6HwOMSLZvEpvPkHTM1jpVPbQT9UXHzJsTaQbig77gJXCXTVowdA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Fri, Oct 18, 2024 at 4:00=E2=80=AFAM Yunsheng Lin wrote: > > Currently there is one 'struct page_frag' for every 'struct > sock' and 'struct task_struct', we are about to replace the > 'struct page_frag' with 'struct page_frag_cache' for them. > Before begin the replacing, we need to ensure the size of > 'struct page_frag_cache' is not bigger than the size of > 'struct page_frag', as there may be tens of thousands of > 'struct sock' and 'struct task_struct' instances in the > system. > > By or'ing the page order & pfmemalloc with lower bits of > 'va' instead of using 'u16' or 'u32' for page size and 'u8' > for pfmemalloc, we are able to avoid 3 or 5 bytes space waste. > And page address & pfmemalloc & order is unchanged for the > same page in the same 'page_frag_cache' instance, it makes > sense to fit them together. > > After this patch, the size of 'struct page_frag_cache' should be > the same as the size of 'struct page_frag'. > > CC: Alexander Duyck > Signed-off-by: Yunsheng Lin > --- > include/linux/mm_types_task.h | 19 +++++---- > include/linux/page_frag_cache.h | 24 ++++++++++- > mm/page_frag_cache.c | 70 ++++++++++++++++++++++----------- > 3 files changed, 81 insertions(+), 32 deletions(-) > LGTM Reviewed-by: Alexander Duyck