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 4592CD64074 for ; Fri, 8 Nov 2024 18:16:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C50A3900008; Fri, 8 Nov 2024 13:16:49 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BDBF48D0001; Fri, 8 Nov 2024 13:16:49 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A540C900008; Fri, 8 Nov 2024 13:16:49 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 8140E8D0001 for ; Fri, 8 Nov 2024 13:16:49 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 24AC5C0F93 for ; Fri, 8 Nov 2024 18:16:49 +0000 (UTC) X-FDA: 82763733318.02.DFFD890 Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.170]) by imf09.hostedemail.com (Postfix) with ESMTP id 95505140009 for ; Fri, 8 Nov 2024 18:16:21 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=j0Tk+yhq; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf09.hostedemail.com: domain of surenb@google.com designates 209.85.160.170 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731089747; a=rsa-sha256; cv=none; b=mkn7h4GAo0vXkR6aCaogx0W+oQnqBZkMm1ZK0nDdyqxs6OR+RFyZJgfVipmLoXSbcfpPS+ Jk4iBqVgwE0KcOkqmuTjn1v/HIAaPz7VUlywZZFmzFQy3NytXuV4x6F6dk55SBy5SA0ZnR zVHogpSns4D2+J+GlR0EtPm3jOdaNQU= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=j0Tk+yhq; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf09.hostedemail.com: domain of surenb@google.com designates 209.85.160.170 as permitted sender) smtp.mailfrom=surenb@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731089747; 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=tbvAIZdxHGw64yGxLAgOjeqw/WxAXQWZByWtHbzgnhg=; b=cDAaHlIHp8ZlX5t/XkwDBowD05ERGA7hUoBltbwhyV7Lyo8TbKYYK6sFMmIjKuRZqEJkRC DgDxHW+pV4On5lqluFfbm/PN7NXJ7y38GOExygdU46jqb2+CGSKrNLqMfJYsHvOubjiRnK TJY7fbg/9gev8ym+jS3/nM9rTFO8SRA= Received: by mail-qt1-f170.google.com with SMTP id d75a77b69052e-460a8d1a9b7so7531cf.1 for ; Fri, 08 Nov 2024 10:16:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1731089806; x=1731694606; 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=tbvAIZdxHGw64yGxLAgOjeqw/WxAXQWZByWtHbzgnhg=; b=j0Tk+yhqikteN65rQiPkRyXkY/qvv9/aryxpTM8MRzsmf/yCQsZpvcFIJMJYYddjZB DedEZZTjWGS/rXDJ48zJu3GO5votRA8N4uQaeqL5j7Ed2SEhkfe8WVFtcJukMc+vMgTc 6AazSPkdrlqdnZNjuDVSetOUrJZ0XgBN7SXRvLk9VCWcoyUkSoCjukHKwE8q3aelA+Gk Nke3nAHF6dmf29SjseKjlM1KQ56Jj8pfZqQ6neTZVfggXj6Tr0NrM0jlTcfRmnwFZ72I XVRrGEppMY1PWKEqowl0WKInxxvKxjoi5eLYooUB7ynJexJBX+dYSK2gUr3r36omYRhs Shiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731089806; x=1731694606; 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=tbvAIZdxHGw64yGxLAgOjeqw/WxAXQWZByWtHbzgnhg=; b=VaTui91degSXNdTnWCyZCqZmf/4OG+pLB9ViHM7beEdevSApSLQpgCj7KNyU8uDsAZ qd56M9cO9fLZwZ2cAPmpZzX7Ll6GSOMuYY6MyCwV42mI3SrT01bs8bdqtmz624JoWRvo nPQIlQmJ6YKIAwIsH05Za4BDt9GfiIBkEtCKkZbeA1ny/oRgfGGSJTA1lQOCMwyNmh9G pyvnUYXC6WQgPeDXbMa75lTLA4PjklnfxX3IFBhUPKJAIi2MIeMOJsTTMIpOat8VlXYo DkyloAresca3BJ5WNfflvAY37yRaFDxAbWteCMtWFI1trcELYkLMVs7SHx2viRC4Rpu/ jOHg== X-Forwarded-Encrypted: i=1; AJvYcCX/tNUNSuw+auq4YcjD1GbF+1L01BHWzJc5P+ORHavf+9E1slk+D7GMX5dypMYC/UTv3qe2itVK5Q==@kvack.org X-Gm-Message-State: AOJu0Yxg7Jyu7/hqBl30JYtoM2DQnQcabmRKeHCZCKSnKdjETZ1TLwig jxsgoFehy/F0QkblPlJxNnqqagyEtf2S8uSLf6EpvZICjn9F0gnhJUZl+0gcJeDvqHAcie/LJVc F0e3ti0t/DNlQ/HGtqjIMGS927JVz7vtY/BYp X-Gm-Gg: ASbGncutF8YB0tOhPQ0/29Up4KJQZvTvJ2OHtkQW/cMTaGWOdvT6v6wSLcUBwpaG7vE Z6IK+jF/i92qR5vzOuAn4p1EgctRKj0U= X-Google-Smtp-Source: AGHT+IHNgvJ5PimTrDi0dUye655zn9b0CrOkbpONn1KMYDJ9FFvfmlO4ZFERX5jgeQ9Uc2Nj95KnwUJNjLBriMSi/DU= X-Received: by 2002:ac8:584c:0:b0:461:70cc:3799 with SMTP id d75a77b69052e-462fa610b20mr8118441cf.21.1731089806166; Fri, 08 Nov 2024 10:16:46 -0800 (PST) MIME-Version: 1.0 References: <20241108075004.131911-1-hao.ge@linux.dev> In-Reply-To: <20241108075004.131911-1-hao.ge@linux.dev> From: Suren Baghdasaryan Date: Fri, 8 Nov 2024 10:16:35 -0800 Message-ID: Subject: Re: [PATCH] lib/alloc_tag: Remove the sysctl configuration to prevent users from disabling it at runtime To: Hao Ge Cc: akpm@linux-foundation.org, kent.overstreet@linux.dev, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Hao Ge Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: 95505140009 X-Rspamd-Server: rspam01 X-Stat-Signature: 13zzzbhhmk8ih93jy51wwjsxyfde6gdu X-HE-Tag: 1731089781-860516 X-HE-Meta: U2FsdGVkX18efGRlzPjYLh59hmuitpSZQXNGLXLQiTNCe+VLzsH5dUEUNDC/A132b7XoYT/zIQkVJm574jJJAh8CfXrcYc4y8KHWIDLyphAMdf0nEITgaUIlTMrulRrYJ7bbCIZQj8QW2dQWJ32yg6nnXQy/jwuoKGXZ6cmjgtiYtcd7R7piEyOfPWGpk2/OVuBRCKogw5v8nETbLK3mtIyG89bZCZJOY+TbiREhIJM+B6FheC+c+EshX7hAHU+Z6AHwfi8QFFnUrvNqE+2DSrtrTlBnSneyUSNLRUwaDhfEb+tK+LERNxHM7omWt7MTHGEOXmwsBCS5yZFg/XiQu1M1lSuXjHDeYjVXq8sryQvgLphFEJEk78x9GTuW+Z+o3GQNfuMm+n/8yPoB2V5fu8aA7DcmJ1mmzkbWsPg+zIecSTdS/MBqEBmV8tdYx01WKfQlYU3Il/hzPz+lbEP1DJ5ObISy675ovGPfvCPXa1KU1ETb+F/P24Re8gAbThNNJkd0sf4238vNfqw2cOF/3bR8uPCQPmgztp6PoikyyFFxM4UJ9r+tDcHBjM9MB/vhUlMB/B55Zi131+H6CQb1w2y5O1uPfdQbPjU5ti8Pye3qB8J9xbCUceK7o30fFRhw4V3/797OuHYhphVnp5k9bUiKSyn9nuSX19G5ooxno3o2MzjZjzKArg/hCt7QeUKP4i5OP7yT3dxYQGPYkut5DTYBbROLJsou1VBQCtYyiq2u9ewmD9LV0i1dXRoLndnMsAOc2hDugksdYOMisAj++6Ray0lKZw64EfAohI1Q5MwfjrTTuzpXkvRooVKi9vxISpS2SPwOEM3OUXZYJiYfm7gIZJ8CDelmmaO1S/9BmNnXSPZ5BmhGBku8xMn37rX4ASnqry7GaTedza9vIyJkd0R0eU5ZXx52YrPJsamKX7OsZ8jJOArX62fIHHzsivc+mYFzBSdKABybUGpV7O5 u3EVSYhN O5KQef8s419rp6MbCJnOnarn6Ef+L4TQas4EGkUihDbJVgP0ZlSSzE0uy90YKyVA0D4/VtMdICp/uStoEmnMfjZClkL49OtO6g9Y3hwMQLDw/QO/VKPFqmrxvnIXQ3fBpVpMThw+THqIH7Iwo7Ryf+WFrKZW1XcJFIOHYsy9mzIjOixKb61Td3ZZ+uY74ffw4bzUKOrCYshJ24aTDYTmrXw8sV6d09paeQut/8ZSc/j5FiGk= 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 Thu, Nov 7, 2024 at 11:50=E2=80=AFPM Hao Ge wrote: > > From: Hao Ge > > After much consideration,I have decided to remove > the "mem_profiling" sysctl interface to prevent > users from dynamically enabling or disabling the > MEMORY ALLOCATION PROFILING feature at runtime. > > I have taken the following actions: I set > CONFIG_MEM_ALLOC_PROFILING_ENABLED_BY_DEFAULT=3Dy to > enable memory allocation profiling by default, > and then made adjustments to mem_profiling dynamically > during runtime. > > When I ran the OOM test program, I obtained useful > information that was indeed very helpful for debugging. > > [ 1023.065402] Memory allocations: > [ 1023.065407] 12.8 GiB 6546 mm/huge_memory.c:1328 func:do_huge_p= md_anonymous_page > [ 1023.065412] 873 MiB 229985 arch/arm64/mm/fault.c:986 func:vma_a= lloc_zeroed_movable_folio > [ 1023.065415] 187 MiB 29732 mm/slub.c:2412 func:alloc_slab_page > [ 1023.065418] 99.8 MiB 25560 mm/memory.c:1065 func:folio_prealloc > [ 1023.065421] 47.2 MiB 3189 mm/readahead.c:434 func:ra_alloc_fol= io > [ 1023.065424] 30.0 MiB 15 mm/khugepaged.c:1072 func:alloc_char= ge_folio > [ 1023.065428] 28.6 MiB 514 mm/compaction.c:1880 func:compaction= _alloc > [ 1023.065430] 25.8 MiB 6592 mm/page_ext.c:271 func:alloc_page_ex= t > [ 1023.065433] 25.6 MiB 6546 mm/huge_memory.c:1161 func:__do_huge= _pmd_anonymous_page > [ 1023.065436] 23.5 MiB 6017 mm/shmem.c:1771 func:shmem_alloc_fol= io > > After running echo 0 > /proc/sys/vm/mem_profiling > and then executing the same test program, > I obtained the following results > > [ 1156.509699] Memory allocations: > [ 1156.509703] 187 MiB 29645 mm/slub.c:2412 func:alloc_slab_page > [ 1156.509707] 142 MiB 9357 mm/readahead.c:434 func:ra_alloc_fol= io > [ 1156.509710] 136 MiB 41325 arch/arm64/mm/fault.c:986 func:vma_a= lloc_zeroed_movable_folio > [ 1156.509713] 99.7 MiB 25531 mm/memory.c:1065 func:folio_prealloc > [ 1156.509716] 56.0 MiB 28 mm/huge_memory.c:1328 func:do_huge_p= md_anonymous_page > [ 1156.509719] 30.0 MiB 15 mm/khugepaged.c:1072 func:alloc_char= ge_folio > [ 1156.509723] 28.6 MiB 514 mm/compaction.c:1880 func:compaction= _alloc > [ 1156.509725] 26.3 MiB 7460 mm/readahead.c:264 func:page_cache_r= a_unbounded > [ 1156.509728] 25.8 MiB 6592 mm/page_ext.c:271 func:alloc_page_ex= t > [ 1156.509730] 23.5 MiB 6016 mm/shmem.c:1771 func:shmem_alloc_fol= io > > Because mem_profiling was disabled by executing > echo 0 > /proc/sys/vm/mem_profiling,we are unable to > record memory allocation information after the disablement. Naturally you are unable to track the allocations after disabling it. You disabled it as root, so I assume you know what you are doing. > These output logs can mislead users. And similarly, the same > applies to alloc_info. I would understand if you made /proc/allocinfo empty after disabling it to avoid confusing the user, but ripping out the ability to enable/disable profiling at runtime does not make sense to me. Once you collect required data, disabling profiling gets you back the performance that you pay for it. There are usecases when a program on a remote device periodically enables profiling for some time, records the difference in allocations and then disables it. Your change breaks such users. > > We already have boot parameters that allow users to > choose whether to enable or disable. > In order to maintain the accuracy of memory allocation > information,I have decided to remove the runtime switch. Well, I disagree with your decision. NAK. > > Signed-off-by: Hao Ge > --- > lib/alloc_tag.c | 26 -------------------------- > 1 file changed, 26 deletions(-) > > diff --git a/lib/alloc_tag.c b/lib/alloc_tag.c > index 81e5f9a70f22..47fa969c23f3 100644 > --- a/lib/alloc_tag.c > +++ b/lib/alloc_tag.c > @@ -227,31 +227,6 @@ struct page_ext_operations page_alloc_tagging_ops = =3D { > }; > EXPORT_SYMBOL(page_alloc_tagging_ops); > > -#ifdef CONFIG_SYSCTL > -static struct ctl_table memory_allocation_profiling_sysctls[] =3D { > - { > - .procname =3D "mem_profiling", > - .data =3D &mem_alloc_profiling_key, > -#ifdef CONFIG_MEM_ALLOC_PROFILING_DEBUG > - .mode =3D 0444, > -#else > - .mode =3D 0644, > -#endif > - .proc_handler =3D proc_do_static_key, > - }, > -}; > - > -static void __init sysctl_init(void) > -{ > - if (!mem_profiling_support) > - memory_allocation_profiling_sysctls[0].mode =3D 0444; > - > - register_sysctl_init("vm", memory_allocation_profiling_sysctls); > -} > -#else /* CONFIG_SYSCTL */ > -static inline void sysctl_init(void) {} > -#endif /* CONFIG_SYSCTL */ > - > static int __init alloc_tag_init(void) > { > const struct codetag_type_desc desc =3D { > @@ -264,7 +239,6 @@ static int __init alloc_tag_init(void) > if (IS_ERR(alloc_tag_cttype)) > return PTR_ERR(alloc_tag_cttype); > > - sysctl_init(); > procfs_init(); > > return 0; > -- > 2.25.1 >