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 A5C8FC369C7 for ; Wed, 16 Apr 2025 21:52:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0BD816B02D1; Wed, 16 Apr 2025 17:52:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 06BF36B02D2; Wed, 16 Apr 2025 17:52:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E76FA6B02D3; Wed, 16 Apr 2025 17:52:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id CA3F26B02D1 for ; Wed, 16 Apr 2025 17:52:53 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 9955E80DDB for ; Wed, 16 Apr 2025 21:52:55 +0000 (UTC) X-FDA: 83341257510.02.E9BD484 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) by imf11.hostedemail.com (Postfix) with ESMTP id A31B840008 for ; Wed, 16 Apr 2025 21:52:53 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=SPCpXFQB; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of usamaarif642@gmail.com designates 209.85.221.45 as permitted sender) smtp.mailfrom=usamaarif642@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744840373; a=rsa-sha256; cv=none; b=JEBKnh1VQrDLo/4QRhTVWNcXiqR+REHJ53rwkbgTW3O0toq1ZaYU9DbV3V/G5daeuD6Ch2 bffajBfwxYOqXn2O7qYRsxzPj7LJQzbC2A+XvhevsGHXWexjbEXl0NXzajx4/ldyQ/WVn/ v3ySkpMxwKp74yKMzIKikHAxRv9Nd9c= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=SPCpXFQB; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of usamaarif642@gmail.com designates 209.85.221.45 as permitted sender) smtp.mailfrom=usamaarif642@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744840373; 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=dvF/qVSL3ELz6eILB+vwpFKw0DXK8I/sRsHQ0VdcGGU=; b=w1AYTI3WoctejxE4ltbUt05CcugRBP7sAc74uYsKEBxAYV/XibPT/ZVUYD6b8we64oyYUf YU7+bLgwVBKxDf0H7K9c/uLUaEQs56qxt5kKs9Ai9ytid9/7yIurPFPVZlrg2IJRldI0h2 fNwa/4bCmQebW2OhCmRjBK+l2IRVffY= Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-39c266c2dd5so103201f8f.3 for ; Wed, 16 Apr 2025 14:52:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744840372; x=1745445172; 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=dvF/qVSL3ELz6eILB+vwpFKw0DXK8I/sRsHQ0VdcGGU=; b=SPCpXFQB5WyyCdmtRnpJfoq9ua2C8Nwe4Cb25XG0BBxlIwMjd9Xy3XsshhtIJopfbP whwXKUbXwnbhU9WYGMpSONUNLoQ/8o7bTxKlWyKi6zljCZpCzXyP6N+7sf6yw7lzvvIk DDPtjH8FY3ZNTScTETKArkutsZ67CNSQNMaZhFOBXUJNDTL8mu1K5RkO4tRs3C6ZEZkf 8E3r+1c0VNO4xKhVoRSeCVUA3U2CdXXFVPGnKm22gtbqlwz4UeUHPFqAIw1Q77Fu3IB0 uqZ0PyBEOK8EOC48SrQqeJ43ibmsvNSccTJPItB6WMl0absq6t++6Z5/UcFaR9qi4TNI MUeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744840372; x=1745445172; 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=dvF/qVSL3ELz6eILB+vwpFKw0DXK8I/sRsHQ0VdcGGU=; b=mIZN/xIvvl3UFPBTZ55zd7Son/P1P4zvugsWIar4brJgHxL6kBhPy+Hv2+rBs8xREy thWBKyByeZywocMtU4L+legh2HOzudcqLqcxuV64S0f8K0ywUCwkAUoYR8uFS7h/pCL7 eoGUPcmAVl3pjt0zl7ZpBVcmPmv+Ku5SsZ4U4wu1y1Je1PDMRYEvMA4jqpOQv5LLAcQ5 eYDhFtp3ph7Eng/CqQDapmpaKjtwYLcowNpFWR4Ywtxl0HRWQni14sF0yAU3iiSY9sHl sg6moS6tdAmyyTqgepGHEKP4Cd3N9seoH/Q7/UbyQcvOAfI56MecFMDyJuJrkYNYz6Ga UWfg== X-Forwarded-Encrypted: i=1; AJvYcCUwaN5Fehr7G1sVuxVXKzMsTfuTxYzdjAIRHz1lTk4Ros+0DtQABcliFX5cuBEqnPfFTGZe31R/Hw==@kvack.org X-Gm-Message-State: AOJu0Yzo715x3JnIHOfuEPu23Mv/5/hSR3D56alaVe6X21OdkE8adf3F tddwsS5vAHChRVptVMN2nPunpt9aM//uNXSGgruIicu3cm/jQ7pL X-Gm-Gg: ASbGncuSCtAr/FwAauTWK5102qCukLQpZc447aGRc5rfNQ/PS154DfM3imyYvMgT9cv K8ZrP2YHRd7+jKChwQXK3Ov+yq88a7x1xOD/kxFKG9BBZeD75vKThHCgFm+aFTwk9AyLKevWoAJ 2xwlwsRmWpfLwv4RhZzXuaL9bFhTTOPB2hPknI0qeESRMsxoYl0/FedQe2HxWxrIrGsg0nt0C7r 8prNqVSXN+FGtlaGIfcgyWbhO44z9IVQLR8BvKM7gORcfGpxfYBJ0BaXCK1Dd28rkQ/g4yup35L ebU2jrUhbha4zLJFW/+QIR5xU+qcnyIIYcbxmSRrOA6QBkoU0C2DYho7Kpfeby0P5Ny60manBVv rkldkWeZvld4TxVDA+OrVL8oMNDLIE7RM6g== X-Google-Smtp-Source: AGHT+IE9WpykaPvMsR2/0Zomzczva7TKYcbw2WSn8b+jWFr9iMt9PPapgg8Q0P4BZa275XWqnqEMmQ== X-Received: by 2002:a05:6000:1a8c:b0:390:f6aa:4e7c with SMTP id ffacd0b85a97d-39ee5b1cc1dmr3207325f8f.28.1744840371916; Wed, 16 Apr 2025 14:52:51 -0700 (PDT) Received: from ?IPV6:2a02:6b67:d752:5f00:c46:86ac:45ea:7590? ([2a02:6b67:d752:5f00:c46:86ac:45ea:7590]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39eae96c05asm17836912f8f.26.2025.04.16.14.52.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 16 Apr 2025 14:52:51 -0700 (PDT) Message-ID: Date: Wed, 16 Apr 2025 22:52:51 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] alloc_tag: introduce Kconfig option for default compressed profiling To: Suren Baghdasaryan Cc: Andrew Morton , linux-mm@kvack.org, hannes@cmpxchg.org, shakeel.butt@linux.dev, linux-kernel@vger.kernel.org, kernel-team@meta.com References: <20250416180653.3438158-1-usamaarif642@gmail.com> Content-Language: en-US From: Usama Arif In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: A31B840008 X-Rspam-User: X-Rspamd-Server: rspam07 X-Stat-Signature: ckyosjuxupbikkbxs57yck6c49pa97x8 X-HE-Tag: 1744840373-185623 X-HE-Meta: U2FsdGVkX1+vRLsyPzCWDb5NIATrKcqmMlre6ru/jA4OXbm1t43AESqIW+e7av9JOqLWAcXvDtVDaIa9hsFxgO5wMs6zWu01zMRRkF4Tx1ZSA1Tt0EXZoaPsPiDqlWd5E1g+VQRXe8/1+kLpqPsgijYp7uYjtrwsYnmnW8cb+UczsUhquRSRkc4aY1R+N2odItJAZDiAORKxaOtM55ThNPbSSVRLyvkc9LZ0CDUhVWCzJgT+iKUBnARg8QA5ZQR4idp7DR9sUOFUafQKj565Xu/gD3dWoemoN7nA5fD7z413iqa7KUakQYfIMNL49KVj/rQ7/8WleEQVaLI05ciCv4igGngovNItYIVGt8Bin6VbNyu4f71SgF7SBorYY6P1COW/ZhVs7YiffrBk/yewsJgmEtFN4+gQNFAQQ1eH3BJdCk0f4eajPgmSZEWasymSorFkQy3x74t58M15+0A/qu/5QUfuB9TDeB2aPCdcfDYsAi3FhtKhzdNUHCTqW8LwtpEoJDRMpMIGEBntogy1UL5co46hpWenOdvxN08mqTQV0CODHWyKezn4D1lV1PXreXkIyu6wwPEEpkHKBlfia1UUz1F0FcfvQcTqzVHFm4CohX5UckbUv/RFtBDkKw0mTYrKcEtX/THdo9i4IEy/TajpQDhAXIv521Qp8J2vVMDMAjvj7zEC44JU/0EcbOlDepaJ5EoZ/bpfl87I/NRWm1bUScliXbvb4SLB9gTLbZ0elGLa1dBXhVWPpMOCVg7Mgwbj4zUPMFJDIDiIg/zcgAIFV17GZcliSxCEkWqOHheWAV4m7/Vwzgn/ymGN5lVIqy0aSCTvEuy9MvU/br1HLHS9FJ3pJcUV2RJ4hTMXTmQfqHDy7Me3Fcbf52p68rQ3+m2vg+xHD8jp6uDbFhnDv2BsR5YdAtmMbtKQaDdsyrobHDyIe+kicffH1V3xBN+lNJ63PShO6e9/xRfZgIE InF0ozQF waCs/M74jcOtCDrEt50XzgF8t8TeZLM5BIFk2yUrtrtLsrBZOHEUEqAqxq0C09A0VF8Lh2HfdPGa9zGG6jrmi/xoFiPTUu79XMiekeYNEMANNe40QHVYV7JItRal2lUrED+cySbX/ZEuIdljD2bThsjpEsSGTMYLIHTVOXcIM4BU3EiuSnfaAA5WniwCnT952ALtt0fcuS5/DIpJyjgayXm2ivH/X7tnmjKhkcbqQ/3E7lGHmON77tz6FQh1vmAXYwoyiI7NErOO1GoifojQxeEyw13NrhCEoVESf7SzPBv5nmd3m5uNokHO+1YREcgd0HXfAuvzTBRnwzFK9QrrlfJ6qGBIK6grmF5t2MrV9Z71Z/n21+dUO4nT1yy2GPboxkPpPMN9hbqX+Yu+bVqhwY3zaORKKXVHPjL1TyYtrL3vP835A3ysR0XUa8MNMKfoJ7jnr++EILmke4p1thdmQrbd8BSI+twPEhEehNh17RDoArhaXuPCBAicrLGmYTVDZRHep11FKnzUeNfiYWJ8PYMbw7TXECtO3PqYXhlxoHrEZ8bplMj6rM8UJRMweaSFi0wE0 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: On 16/04/2025 22:08, Suren Baghdasaryan wrote: > On Wed, Apr 16, 2025 at 11:06 AM Usama Arif wrote: >> >> With this Kconfig option enabled, the kernel stores allocation tag references >> in the page flags by default. >> >> There are 2 reasons to introduce this: >> - As mentioned in [1], compressed tags dont have system memory overhead >> and much lower performance overhead. It would be preferrable to have this as >> the default option, and to be able to switch it at compile time. Another >> option is to just declare the static key as true by default? >> - As compressed option is the best one, it doesn't make sense to have to >> change both defconfig and command line options to enable memory >> allocation profiling. Changing commandline across a large number of services >> can result in signifcant work, which shouldn't be needed if the kernel >> defconfig needs to be changed anyways. > > The reason tag compression is not the default option is because it > works only if there are enough free bits in the page flags to store a > tag index. If you configure it to use page flags and your build does > not have enough free bits, the profiling will be disabled (see > alloc_tag_sec_init()). IOW there is no graceful fallback to use page > extensions. Therefore, the current default option is not the most > performant but the one which works on all builds. Instead of this just > set sysctl.vm.mem_profiling boot parameter in your config file. Hi Suren, Thanks for the review! The main reason is to not have to make a change in both defconfig and kernel command line while deploying it. We can ofcourse set the commandline as well, but just makes deployment more tedious, and adds an extra commandline parameter. In our case, we only want to deploy compressed tags, and if there aren't enough free bits, we would prefer to disable memory allocation profiling than to take the memory and performance hit. Would keeping the default value of this config disabled be an acceptable option? i.e. the below diff on top of this patch? diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 66d8995f3514..163ffcece47a 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -1030,7 +1030,7 @@ config MEM_ALLOC_PROFILING_ENABLED_BY_DEFAULT config MEM_ALLOC_PROFILING_COMPRESSED_ENABLED_BY_DEFAULT bool "store page allocation tag references in the page flags by default" - default y + default n depends on MEM_ALLOC_PROFILING config MEM_ALLOC_PROFILING_DEBUG Thanks, Usama > > Your change effectively changes the default value of > mem_profiling_compressed and I don't see why you need to introduce a > new config option for that. But that really does not matter because > changing default to compressed tags is not the right choice IMO. > >> >> [1] https://lore.kernel.org/all/20241023170759.999909-7-surenb@google.com/T/#m0da08879435f7673eaa10871a6e9d1be4f605ac8 >> >> Signed-off-by: Usama Arif >> --- >> include/linux/pgalloc_tag.h | 4 ++++ >> lib/Kconfig.debug | 5 +++++ >> lib/alloc_tag.c | 4 ++++ >> 3 files changed, 13 insertions(+) >> >> diff --git a/include/linux/pgalloc_tag.h b/include/linux/pgalloc_tag.h >> index c74077977830..0226059bcf00 100644 >> --- a/include/linux/pgalloc_tag.h >> +++ b/include/linux/pgalloc_tag.h >> @@ -16,7 +16,11 @@ extern unsigned long alloc_tag_ref_mask; >> extern int alloc_tag_ref_offs; >> extern struct alloc_tag_kernel_section kernel_tags; >> >> +#ifdef CONFIG_MEM_ALLOC_PROFILING_COMPRESSED_ENABLED_BY_DEFAULT >> +DECLARE_STATIC_KEY_TRUE(mem_profiling_compressed); >> +#else >> DECLARE_STATIC_KEY_FALSE(mem_profiling_compressed); >> +#endif >> >> typedef u16 pgalloc_tag_idx; >> >> diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug >> index 9fe4d8dfe578..66d8995f3514 100644 >> --- a/lib/Kconfig.debug >> +++ b/lib/Kconfig.debug >> @@ -1028,6 +1028,11 @@ config MEM_ALLOC_PROFILING_ENABLED_BY_DEFAULT >> default y >> depends on MEM_ALLOC_PROFILING >> >> +config MEM_ALLOC_PROFILING_COMPRESSED_ENABLED_BY_DEFAULT >> + bool "store page allocation tag references in the page flags by default" >> + default y >> + depends on MEM_ALLOC_PROFILING >> + >> config MEM_ALLOC_PROFILING_DEBUG >> bool "Memory allocation profiler debugging" >> default n >> diff --git a/lib/alloc_tag.c b/lib/alloc_tag.c >> index 25ecc1334b67..30adad5630dd 100644 >> --- a/lib/alloc_tag.c >> +++ b/lib/alloc_tag.c >> @@ -31,7 +31,11 @@ DEFINE_STATIC_KEY_MAYBE(CONFIG_MEM_ALLOC_PROFILING_ENABLED_BY_DEFAULT, >> mem_alloc_profiling_key); >> EXPORT_SYMBOL(mem_alloc_profiling_key); >> >> +#ifdef CONFIG_MEM_ALLOC_PROFILING_COMPRESSED_ENABLED_BY_DEFAULT >> +DEFINE_STATIC_KEY_TRUE(mem_profiling_compressed); >> +#else >> DEFINE_STATIC_KEY_FALSE(mem_profiling_compressed); >> +#endif >> >> struct alloc_tag_kernel_section kernel_tags = { NULL, 0 }; >> unsigned long alloc_tag_ref_mask; >> -- >> 2.47.1 >>