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 BCD23C2BD09 for ; Wed, 10 Jul 2024 01:58:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 54CE56B00A1; Tue, 9 Jul 2024 21:58:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4FC7C6B00A3; Tue, 9 Jul 2024 21:58:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 39C646B00A4; Tue, 9 Jul 2024 21:58:43 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 1DB4B6B00A1 for ; Tue, 9 Jul 2024 21:58:43 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id B3C7081A6C for ; Wed, 10 Jul 2024 01:58:42 +0000 (UTC) X-FDA: 82322184084.07.B2E9164 Received: from mail-oa1-f49.google.com (mail-oa1-f49.google.com [209.85.160.49]) by imf23.hostedemail.com (Postfix) with ESMTP id CADC4140008 for ; Wed, 10 Jul 2024 01:58:40 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=GCfmqOXT; spf=pass (imf23.hostedemail.com: domain of seakeel@gmail.com designates 209.85.160.49 as permitted sender) smtp.mailfrom=seakeel@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=1720576689; 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=qJGXsAK2YOtUbQ/sbrNck5vDbgsCGN7XuLcNE719NQI=; b=w2E5JwvPdJuJN2gH+LaB2GW6vu8B1beCTRpY4UM3M7k5JygC3c4J+aQOyEjOoSgm++Tf6L 1e5aMt/RjVDamUa9i1CBRvab4gnN1tqKNQVDic9zzAV8BWXZVYG11qe0Qm41MqEyI4eogi sKLMEtJ7aZfpBw8kkZzKg7oBZ8uIFTY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720576689; a=rsa-sha256; cv=none; b=8GCtCNxmQGdt9PaRN+5/Efqji6EoT3IWy/BoQcep9kY37oaHb1OXXDEyEtOo9iERKUM6RG aVVYnrmDMqbuP+gWEpwBjIjjeJlsSLpvVto0rlaelIvFDDj9UQ0w/pXMjrkyjn6onO4/iE FSpN7679UbDAomnnyldzNfrpeddq1t8= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=GCfmqOXT; spf=pass (imf23.hostedemail.com: domain of seakeel@gmail.com designates 209.85.160.49 as permitted sender) smtp.mailfrom=seakeel@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-oa1-f49.google.com with SMTP id 586e51a60fabf-25e3b8637c9so2190894fac.3 for ; Tue, 09 Jul 2024 18:58:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1720576720; x=1721181520; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=qJGXsAK2YOtUbQ/sbrNck5vDbgsCGN7XuLcNE719NQI=; b=GCfmqOXTBL4VZDKL+i03FBW7+r92N83/zflTHFo5+eKIl6CklkypNqQ5Xs2HjRV19L tbJpOxdDyAcP6R0izS6o68vN11idIHXpQz1ltG466sBkSx0EMyuAMU2xZyQKhzJXyrD2 RKDHrvkhhDpM9S/lvBBQZwVj4Tf3+12TcmYDLxmz3twDs7JqkPUkDJuAsPOyMWlrQRRK Zdw7BJcu5v9rAvvDpkL4+Q5IhQRR9bPKLhDySAouMFFBLbLg1kAPeCtC29O2DMJLCVIZ M1eUO2+a4qlaQbnKyn0X/wgE8Wvj8uYCTh8MY0bcNAAPg+rE1uAZqslkCxydV3HpPQCi RkGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720576720; x=1721181520; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=qJGXsAK2YOtUbQ/sbrNck5vDbgsCGN7XuLcNE719NQI=; b=q+aBKpWs+v5pNCTbPIEPhf/54nEmCWb9zqhznh7jbxKImtnPPFU356NBgI88a6uZMa PP/pet5/dVSGzplUCBICjdASYVMaCHeTDdoevsc3cpjbvHoacdzfSgJhTpTfzoP7iauL wwg2bs5I1LsDykLwWleVb5/3/g1XAbQat8siUNO7IUJqyOa6NvCwXdQ1TsbzdJIL3QG1 C0YOp/VWA4kfaRz7pmtsHfDutbvHwlV+oWP/NFwE997dFGusLq1Mz7iadz4Q4K/m6szB RTKVvTUIEDcZlnboJzCdYAQtfXyLJwPM7Pcz88k/t/oakMYODT+HU+mq/dihDZLQn6u7 fbzQ== X-Forwarded-Encrypted: i=1; AJvYcCWJ+MSUvX8xD4gxNtM4B61DVkhXLtJvvLGz26PAdyMzb5fp36j0LEUnRqg7Ipl1qeyhdbKw/8lV6O5w7Qk5JzgyiZo= X-Gm-Message-State: AOJu0Yxcbvbniib002s3RJ6f9mDZjLrRq8ddXw1sbnxRehxdJNYKs5J2 Esaje6uHS7TKKsW2cM7RAhfSmp5C0+3V9VEHCG+1yqiiSKIzmYO4 X-Google-Smtp-Source: AGHT+IHlQY7Syqv+iiphtLLigmfPCTS/oM4wNHOH61Rsv17bdhgbPglQfSrzmn5AqOMMj1ShLFljiA== X-Received: by 2002:a05:6870:c34c:b0:254:96ec:bc44 with SMTP id 586e51a60fabf-25eae88a6d3mr3166772fac.28.1720576719665; Tue, 09 Jul 2024 18:58:39 -0700 (PDT) Received: from [192.168.255.10] ([43.132.141.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-70b43967443sm2498915b3a.113.2024.07.09.18.58.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 09 Jul 2024 18:58:39 -0700 (PDT) Message-ID: <3e034d0e-5cb5-46ef-b091-9ea0b632e373@gmail.com> Date: Wed, 10 Jul 2024 09:58:34 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] mm/memcg: alignment memcg_data define condition To: alexs@kernel.org, Christoph Lameter , Pekka Enberg , David Rientjes , Joonsoo Kim , Vlastimil Babka , Roman Gushchin , Hyeonggon Yoo <42.hyeyoo@gmail.com>, "Gustavo A . R . Silva" , Vincent Guittot , linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Petr Mladek , Masahiro Yamada , Randy Dunlap , Yoann Congal , Suren Baghdasaryan References: <20240710015608.100801-1-alexs@kernel.org> Content-Language: en-US From: Alex Shi In-Reply-To: <20240710015608.100801-1-alexs@kernel.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: CADC4140008 X-Stat-Signature: sxb79xyk8muh4gikgctbhduiyrc4priy X-HE-Tag: 1720576720-71770 X-HE-Meta: U2FsdGVkX19HHoPmsaCFjUycjXEfTXutGcG0db945u/SBiM6Oocbedv1GStyzkT1ogJYnJjmnISnpgoyZkjqlr3DD7bxwxmUls/vj0txJgtgPsU6Ob+6d7nP7f3vk1wiEyP3WzqTeSxkEvkJPkyI4LqODwllw1KRCfIcORutFFNeBm1afH5BfV4tkxNUIQI9iOYT4EembojSfyWQCjFl7azvUjByWRqkCXPrKbjYqESLKUKIDfCRaTGMj47RXlaLE0PGLgs6V/FX8RwH1NTDp6fnuOPPDojDCcdJq3GEB4zls2EnHBRLh5QcmA8umN19OEexgF5481NsDt0ZyGfvEWaXZzBeFbC+9rN2Hj8ODdza/11IOhQEHbgO+MfwfzqDM/E1apQrlby5NUjjyOKnOX1h0qb0lzSmC2JJcL27+NEFXqLmEWZR0av7q40Sw/hmLmCMwY3Eax0S+rt4IPzpmuMsIkIzt01Ejik1CNCXVr81QE2veBPZFkoHwuX0XmKEyQvqdR3su6UexMrQYEL4ecfhS4yCkaTo8B+fSAYNjoGe6lg232mrWQJVULDVTuEp9DCAFbURmMDhButDww8He3V6diwl25apJTfiZd9xmdvZHqpnSiBuhTGDdShGhlAXXWQqQWyDdpAPHKJ+npQ7VDIn+Y4KYCXiXs9CMEmXB5CcDI9QoE4jY4xZv7ANcsOFgEvmIJ1PPV2iAxtv8hAF4RlQz2exsqG6skfuT0AxWdyk+2MsXcjQBvKFWMzq0ya9TidOi/qzgkEPLuDsZUvbkco0SfDDFuypmtIjYYELVzHs0PJnFNNy1ejnNqdf6ugwQHjeiziHW4eo1agQwL2ffHn+dwTlX4NwuJlBP/Rsn1eB5Whq3i7lGOE2UB9+DPB9xiaCvK5ODGshNsasfP4Ff1ms5k7EBsrQjif62+9fW6JyfPvIYK30Sv8jns27kUeHB1Q+RXCjACnfAln2AnG bPagPbg0 V87XOdUPFE8KXyk+K/HgZBlXFweOV5Rx56WCInjS8Nz7GHyDyGXxfzXi2oAQNnCuVtv4axKd8O0AcQwbYYCrWvfIaHOJzIPbg65us0hbRsm3vdK12QaeisrnNcGXMjGw9BX6JbJmF2zTC7PrAIyfGBYUM8efXaNkDsumFkgZ72lpgSfBJwQhW3oDeCxqkcRoWoC7U2QOLnlPDPfATVsHE6nWlsKRfLoq6yRlyDulwDp7nAgwa051pE2pLlhUTuhFf54FyaBLE67OVOXezxXrRCembvwxd2lrnofVCDLi8Jwzgpr/jeliU0ggO+442TR6CUnFUHRoLP4PGgL0tsZzses8cSo0W4FtjJA1H/OtYkMAUKuzExukG8MrlS4LDU7ZeCcecSrKGb37DdHYdrDV4NZ6GsKH6uDPZx9BgWKta2joxWKXTx7fZv2ljQ5w8VdL9pmGvUDj+8HJx2s9hulOSJfUQjj+giMmRWhvrAnQ4AO5BsRIqSVVoCY3IGH1r8Z7JiaVYGOqabujbHEUsXEVql9B8FZWZCADDPnQ7J7cU/cqUQoJYBoLmLNTpLXhT6XPpg+5MZfAPynY+XMC5PeTQlWF2sPDJYBkgPfWABCNu9RjVN3LoPoARc4U2L12JtItz65fjNOKZ41QPr1A7nXuKn3B3s2aJX66A9nOYjl/eerKTNGp8paPKEov95gKOvk70egHS X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Ops, This patch failed with MEMCG && !SLAB_OBJ_EXT, please ignore this patch, I will update ASAP. Sorry On 7/10/24 9:56 AM, alexs@kernel.org wrote: > From: "Alex Shi (Tencent)" > > commit 21c690a349ba ("mm: introduce slabobj_ext to support slab object > extensions") changed the folio/page->memcg_data define condition from > MEMCG to SLAB_OBJ_EXT. And selected SLAB_OBJ_EXT for MEMCG, just for > SLAB_MATCH(memcg_data, obj_exts), even no other relationship between them. > > Above action make memcg_data exposed and include SLAB_OBJ_EXT for > !MEMCG. That's incorrect in logcial and pay on code size. > > So let's remove SLAB_OBJ_EXT from MEMCG and as Vlastimil Babka suggested, > add _unused_slab_obj_ext for SLAB_MATCH for slab.obj_exts while !MEMCG. > That could resolve the match issue, clean up the feature logical and > save the unnessary code adding. > > Signed-off-by: Alex Shi (Tencent) > Cc: Randy Dunlap > Cc: Yoann Congal > Cc: Masahiro Yamada > Cc: Petr Mladek > Cc: Suren Baghdasaryan > Cc: Vlastimil Babka > --- > include/linux/mm_types.h | 8 ++++++-- > init/Kconfig | 1 - > mm/slab.h | 4 ++++ > 3 files changed, 10 insertions(+), 3 deletions(-) > > diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h > index ef09c4eef6d3..4ac3abc673d3 100644 > --- a/include/linux/mm_types.h > +++ b/include/linux/mm_types.h > @@ -180,8 +180,10 @@ struct page { > /* Usage count. *DO NOT USE DIRECTLY*. See page_ref.h */ > atomic_t _refcount; > > -#ifdef CONFIG_SLAB_OBJ_EXT > +#ifdef CONFIG_MEMCG > unsigned long memcg_data; > +#elif defined(CONFIG_SLAB_OBJ_EXT) > + unsigned long _unused_slab_obj_ext; > #endif > > /* > @@ -343,8 +345,10 @@ struct folio { > }; > atomic_t _mapcount; > atomic_t _refcount; > -#ifdef CONFIG_SLAB_OBJ_EXT > +#ifdef CONFIG_MEMCG > unsigned long memcg_data; > +#elif defined(CONFIG_SLAB_OBJ_EXT) > + unsigned long _unused_slab_obj_ext; > #endif > #if defined(WANT_PAGE_VIRTUAL) > void *virtual; > diff --git a/init/Kconfig b/init/Kconfig > index 26bf8bb0a7ce..61e43ac9fe75 100644 > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -965,7 +965,6 @@ config MEMCG > bool "Memory controller" > select PAGE_COUNTER > select EVENTFD > - select SLAB_OBJ_EXT > help > Provides control over the memory footprint of tasks in a cgroup. > > diff --git a/mm/slab.h b/mm/slab.h > index 3586e6183224..8ffdd4f315f8 100644 > --- a/mm/slab.h > +++ b/mm/slab.h > @@ -98,7 +98,11 @@ SLAB_MATCH(flags, __page_flags); > SLAB_MATCH(compound_head, slab_cache); /* Ensure bit 0 is clear */ > SLAB_MATCH(_refcount, __page_refcount); > #ifdef CONFIG_SLAB_OBJ_EXT > +#ifdef CONFIG_MEMCG > SLAB_MATCH(memcg_data, obj_exts); > +#else > +SLAB_MATCH(_unused_slab_obj_ext, obj_exts); > +#endif > #endif > #undef SLAB_MATCH > static_assert(sizeof(struct slab) <= sizeof(struct page));