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 B5BD4C71136 for ; Fri, 13 Jun 2025 19:19:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 567EE6B008A; Fri, 13 Jun 2025 15:19:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 518876B008C; Fri, 13 Jun 2025 15:19:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 42FC76B0092; Fri, 13 Jun 2025 15:19:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 24E406B008A for ; Fri, 13 Jun 2025 15:19:46 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 8D1381A10C4 for ; Fri, 13 Jun 2025 19:19:45 +0000 (UTC) X-FDA: 83551341930.24.F0D68E1 Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) by imf26.hostedemail.com (Postfix) with ESMTP id A2E0C140010 for ; Fri, 13 Jun 2025 19:19:43 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=mxxfYmWG; spf=pass (imf26.hostedemail.com: domain of surenb@google.com designates 209.85.160.171 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749842383; 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=ls4Y9HoT9VEjZR6n9L8mMlDWt5VvuU4t30VU2btZu64=; b=D6/KyzAHbLMUtJ6yGgMDKBDOmbRqsFq/xqCLo+52qs5NZzO98hQ25z749au9Dln6VfYBPg 9ubevEklAxkY8NTgzuupM6NbLRlgMbZFVz7ROKkZxFuyOIq3xr4koKSXCfEWGRC9YJYOas qB5PQHDjMZ8CVb7eCkGWo0LnFAkLInk= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=mxxfYmWG; spf=pass (imf26.hostedemail.com: domain of surenb@google.com designates 209.85.160.171 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749842383; a=rsa-sha256; cv=none; b=jOMKX7Zl6OOGLDNNDbHpsGMCl19XsPawOCG6BXb8gZncrFrjfXyCW5Dnn72iL3zJ/e1vrX lhMzYR1dLdH/tW8dS2OFCB9/n65844UduI/IlkH+pq91BDEFXXzT7O/i/2FC0VmHiRaBca ij4iH+71C2lPVK4yypO92KqzE2SBEZ0= Received: by mail-qt1-f171.google.com with SMTP id d75a77b69052e-4a58ef58a38so30481cf.0 for ; Fri, 13 Jun 2025 12:19:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1749842383; x=1750447183; 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=ls4Y9HoT9VEjZR6n9L8mMlDWt5VvuU4t30VU2btZu64=; b=mxxfYmWGYXIFI8Hd2jT+v0+XoYt6Vpkgfj6YJKWj11i5WB/uA6QNOpP8RqdhY5dqA9 rXgp2fsbEm5ii4nV893aRFeBVS2yDKC7uwMl9lgQsgEQ+CotVuHK0z6SD602dVVvf7Xh pIVAntHJyvZ/MikVsxdnuhXtqaSpkcy46ymZSbrriEZrA6vZJlUijBc7OnnVKnzHiWpf 4pl6INxf9/76RC7PJmUI+fOAWEu/voT8BpoIFb68aasBQtuNfYxBtxI0S0q1QtPla6jS QUb+qajgtEWKR1g5Q4GbxNyyNzHCEV0BQOMZa+C8Hdx2GYIeHAHRyEUetmtV5cJBX60h 7dZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749842383; x=1750447183; 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=ls4Y9HoT9VEjZR6n9L8mMlDWt5VvuU4t30VU2btZu64=; b=r1pUo8nqTEqLib6xynpatbtBOjDcjNZ8tl+AY/wvJSN2Yss+S4D4Y6DJVvZClIngzc w85BXohFILSWY8opH1wKZBm8vAJhNkyhB6MRqleFvkzyImbM1Kby9u71B854n+uYpsm/ emrSy0e4cCJuxrfpcS9qarstmzbKHa4pMSLKwAP4rmTFmJu0YqwRcWkjmrhGGZAibRwc oFbD/Wm2wAGPls6e72Ft3gDU+ErNEURpxj2EmZLAfUprEbzXX2ogk5BSUeRe47FEMkVF i4YgkSC612PKwZ8vXHROezgONa1dQGx6MuORubSugEAyHoA2sJYyR7/cREYC6bgq3Hn5 Yh7Q== X-Forwarded-Encrypted: i=1; AJvYcCUAirdyBnLYH7JfKRQkGFVgTw0uKnN7k6NSPvMYO8ng+rVIMnJg+bq4+8MnVrZI3Wj/PuY2mc1xYg==@kvack.org X-Gm-Message-State: AOJu0YzuiJVfhc54Ww7D28TuKhWhkMx0PrJngAEE6s/lww754aB54wlh yXBN6zaW7v5c8uoZN3VN0SJes3dgoo7eYNr4Hnh3K2N60MdzalbkMQD2yn3JIytAcEc2NBlUGkj zI9wQs1hU+4re/ApH+vaha6M6yPOjW7A3kb3AuXmk X-Gm-Gg: ASbGnctm9hfkm4MB0iu7MMkMRYSnZFBNc4SzB2HMHwFaqnnuhv79iKUeVrWyFVJDzm1 Bg8Wx4EvleD9MjCCqBjSF0AjPe9vctQhfecER3ZY80FVfHFa8EF6QCow4IsvpziQ8y6ILY0Slez Ipdi0YWLVPiL9+RG2aBKYFqyoDemi0SGMZ6kTvc/AyWw0iwtC2NuCt X-Google-Smtp-Source: AGHT+IHbm2b0b8YGHX28r7f2pzl1NXSMck+kvuJZCJIVk1NshA3nbRdTcXcdIfx+F3Jou0xe6PXvnume9QxDaU2tiYc= X-Received: by 2002:a05:622a:1829:b0:476:f1a6:d8e8 with SMTP id d75a77b69052e-4a73c737c96mr390081cf.11.1749842382290; Fri, 13 Jun 2025 12:19:42 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Suren Baghdasaryan Date: Fri, 13 Jun 2025 12:19:31 -0700 X-Gm-Features: AX0GCFuV7BnvCEvakQqnTD_G0pwn3IuNvCBiUSnYUaTsvkP-nXz7XbXoATM8nbs Message-ID: Subject: Re: [PATCH v2 0/3] mm: Restrict the static definition of the per-CPU variable _shared_alloc_tag to s390 and alpha architectures only To: Hao Ge Cc: Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Richard Henderson , Matt Turner , Dennis Zhou , Tejun Heo , Christoph Lameter , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Kent Overstreet , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-alpha@vger.kernel.org, linux-s390@vger.kernel.org, Hao Ge Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: A2E0C140010 X-Rspamd-Server: rspam03 X-Rspam-User: X-Stat-Signature: w7gg66i9f5nrzw5s4gnsbqqrjhwr9nhp X-HE-Tag: 1749842383-924455 X-HE-Meta: U2FsdGVkX1+yHL8ZLWeftg526vRD4ZGB6NouI8BZnBMRduhw4l+W1e/FF2rK/B9fkjNS9wgWsn0ec1JXWmKBBAaGlem9DqobXwvQ+DgFvLb7grgHojtPuVdbqreShlt+H/XS4UBN/TT9Hv04uNc9/vijCU1JG6DqVrQWglAAP0V7ORJZyn1CwfUKwBkhZp4wAOfSbRdZAdT4lKgZzehzBnr8IoBZ2ZQNHxgLhsiv2YaCBRRFTezy7PtVS7cp7b92FbbT7fR7/N+af1oTKwzq1hmgzQd2BXD9HkZ9ax3LcFx5xvxwWGVeUGj8+TEwqsGGNJvnmVsST4+oe7vew4pr//50wvPFvtDEYMNN3zNdzp8/0aldptjvQwRp8yHehI4Md2npR+F9HYPsK3U7kyUoUDSL+AEbVprE83EDfgJQwJ+hQsg6/9hoaqL4pg/NCPxnG4YRV4Q0VV1LAL9HM8RaZ4L02Fj2UyWyJNdSRFpg0CHji5PAzEgSzAxcxXDKsEYcqTbm75XjQnYjR4BLM2DaWk+kgpieKOAc7YKwvRyvEyX/zfzti8yDNu++8oePSf4yEarWfKwjeWvKIDoYaPpWhhJkNd+HYA6PEbyvT8fRd05oHi1Gc0lmooDtNrTdrnXzvUpdO8CZQgBKzKLUNWBzhthmQW4DSDJFZQThCjwuUWj7gYL5In4p4+0CpPkkZ1OUNmr8YC8qQy1/oIo9ABFf/qWjwozvhBHR4gJwGCX+QLUg0o4IRDPhsS3JB3uw03F5W4tazUxjnNONM8/A+mY/pRit8ENj4vADexEBUWxZtNSQyHIxIxsopVKBchQQDJePf0pE+ItImgo9YVaIX28m6c0PeVbU7vW30SUG1VQYaizS09qgZmdovJ+7rgJe8lrBaV+yZfA9nrmUvGTNXqze8TxVTdNqMU03+ZP8DRHjp/+8b3jL5l4lC7ds6VHI7TwDj4cM3g+aB9E3gTORgu1 AVmzpPYh opDm9CxAlgbswGei4dEZGlL9WankO2jqTSoCKKd+X0KHxPpohaaGmK6wALd6q7Zg1GMKaXz74KdRKfxIri2SUYgwZtRMKaKKiF3aTBBREpNUzrYcfyWsCqT2H2MvgRg/fvIixpvhIyYaKgJetWDxwvcU4QexHS0uuVrRI+zesf69WnFIMyExCExBdYOnYEDdWj1K7e5XgWuWV83t1WxZMstr7fRlntATg4nWKVQ1N/hwOV14un4mRhC80i084gjUtSL32KHO+WHXquvc= 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, Jun 12, 2025 at 8:06=E2=80=AFPM Hao Ge wrote: > > From: Hao Ge > > Recently discovered this entry while checking kallsyms on ARM64: > ffff800083e509c0 D _shared_alloc_tag > > If ARCH_NEEDS_WEAK_PER_CPU is not defined((it is only defined for > s390 and alpha architectures),there's no need to statically define > the percpu variable _shared_alloc_tag. As the number of CPUs > increases,the wasted memory will grow correspondingly. > > Therefore,we need to implement isolation for this purpose. > > However,currently ARCH_NEEDS_WEAK_PER_CPU is a #define and > is enclosed within the #if defined(MODULE) conditional block. > > When building the core kernel code for s390 or alpha architectures, > ARCH_NEEDS_WEAK_PER_CPU remains undefined (as it is gated > by #if defined(MODULE)). However,when building modules for these > architectures,the macro is explicitly defined. > > Therefore,we need to make ARCH_NEEDS_WEAK_PER_CPU a Kconfig option. > And replace all instances of ARCH_NEEDS_WEAK_PER_CPU in the kernel > code with MODULE_NEEDS_WEAK_PER_CPU,MODULE_NEEDS_WEAK_PER_CPU might > be a more accurate description,because it was only needed for modules. > Then,when defining the percpu variable _shared_alloc_tag,wrap it with the > CONFIG_ARCH_NEEDS_WEAK_PER_CPU condition. > > The following version can be regarded as the most original version: > https://lore.kernel.org/all/20250529073537.563107-1-hao.ge@linux.dev/ > But unfortunately,it caused build errors on s390. > Based on Suren's guidance and suggestions, > I've refined it into this patch series. > Many thanks to Suren for his patient instruction. I think the first two patches in your patchset should be merged together. > > Verify: > 1. On Arm64: > nm vmlinux | grep "_shared_alloc_tag",no output is returned. > 2. On S390: > Compile tested. > nm vmlinux | grep "_shared_alloc_tag" > 00000000015605b4 r __crc__shared_alloc_tag > 0000000001585fef r __kstrtab__shared_alloc_tag > 0000000001586897 r __kstrtabns__shared_alloc_tag > 00000000014f6548 r __ksymtab__shared_alloc_tag > 0000000001a8fa28 D _shared_alloc_tag > nm net/ceph/libceph.ko | grep "_shared" > U _shared_alloc_tag > 3. On alpha > Compile tested. > nm vmlinux | grep "_shared_alloc_tag" > fffffc0000b080fa r __kstrtab__shared_alloc_tag > fffffc0000b07ee7 r __kstrtabns__shared_alloc_tag > fffffc0000adee98 r __ksymtab__shared_alloc_tag > fffffc0000b83d38 D _shared_alloc_tag > nm crypto/cryptomgr.ko | grep "_share" > U _shared_alloc_tag > > v2: > Heiko pointed out that when defining MODULE_NEEDS_WEAK_PER_CPU, > the CONFIG_ARCH_NEEDS_WEAK_PER_CPU condition in the v1 version > should be removed,as it is always true for s390 and alpha > architectures.And He also pointed out that patches 2-4 need to > be merged into one patch. Modify the code according to the suggestion= s > and update the corresponding commit message. > > Hao Ge (3): > mm/Kconfig: add ARCH_NEEDS_WEAK_PER_CPU Option and enable it for > s390/alpha > mm: replace ARCH_NEEDS_WEAK_PER_CPU with MODULE_NEEDS_WEAK_PER_CPU > mm/alloc_tag: add the CONFIG_ARCH_NEEDS_WEAK_PER_CPU macro when > statically defining the percpu variable _shared_alloc_tag > > arch/alpha/Kconfig | 1 + > arch/alpha/include/asm/percpu.h | 2 +- > arch/s390/Kconfig | 1 + > arch/s390/include/asm/percpu.h | 2 +- > include/linux/alloc_tag.h | 6 +++--- > include/linux/percpu-defs.h | 4 ++-- > lib/alloc_tag.c | 2 ++ > mm/Kconfig | 4 ++++ > 8 files changed, 15 insertions(+), 7 deletions(-) > > -- > 2.25.1 >