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 EC551C28B30 for ; Thu, 20 Mar 2025 17:40:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9D0CE280009; Thu, 20 Mar 2025 13:40:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 98034280006; Thu, 20 Mar 2025 13:40:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8221C280009; Thu, 20 Mar 2025 13:40:03 -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 6343B280006 for ; Thu, 20 Mar 2025 13:40:03 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id E19C016183B for ; Thu, 20 Mar 2025 17:40:03 +0000 (UTC) X-FDA: 83242642686.21.A251EAC Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by imf29.hostedemail.com (Postfix) with ESMTP id F1102120007 for ; Thu, 20 Mar 2025 17:40:01 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=HaVumWNh; spf=pass (imf29.hostedemail.com: domain of ryabinin.a.a@gmail.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=ryabinin.a.a@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=1742492402; 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=ICJPfH1Men5qwSYszeUMQ6QRHz5SpwAhZQR7oJ7/pJ8=; b=Os4mErUc90JvLNQ28FVUdlfFXOSehZsHB6w/vpd4JaialFzKWMG1XXMseoV/pIZffC3B3Y re2s467kE6C0ZYCbEhqIFT2lyUBfQt79T4R3n9F6IzbTkIpWy0mVT1/wIPTPWd9akkm8zS HI5xrgV/gYo5mHiQC+eDZt4HxU95S+w= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=HaVumWNh; spf=pass (imf29.hostedemail.com: domain of ryabinin.a.a@gmail.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=ryabinin.a.a@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742492402; a=rsa-sha256; cv=none; b=SOP+Z5rLbJIKBmX6wG4b6FUhpwoCjRW0yyTfxKbYgpHBCwEqnA5Gm7HLsvqLWxeQ4UwNso ZNeXE0kyIz6XesRe6JBqzGuYt3rX0sAQJOJJkD7YmG2olIwxZMddPjUEJG0vMJJ7/pXahM rNO2AQFMNcHKpnB0Y7SoKJRo//RYlCg= Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-43cf89f81c5so1245055e9.2 for ; Thu, 20 Mar 2025 10:40:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742492400; x=1743097200; 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=ICJPfH1Men5qwSYszeUMQ6QRHz5SpwAhZQR7oJ7/pJ8=; b=HaVumWNhjliI2w3jaTmAUvDlwKgDPWeNdVesm4hOiOsyJVJ1ftmF1mI4AnW5AHoAgk L4e+0gQi4tWRN42wzqRHHA6mzWWHMAzzycpuQeNCags0vHjKVNyXjoLzojtfP+A9dpka 36chHFNcwsUPeVAvUjgImwK6DjJKe2lg5zZGWFfOkNw5F2JL9Mw9+bSDsnjZWfcN9inH XLqHD/RlBv97kVLjwJHJ4QvXLWbt1socFZ/GTEnkwrldU3+EB012+zLFHO49GxTziGXa +o9VIKGVol3ptJ5H5AecuWiwTlih/69qTJQSpr5mY9F6ollxvwzdbY0IBmGnGERiwU2K 0Ucw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742492400; x=1743097200; 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=ICJPfH1Men5qwSYszeUMQ6QRHz5SpwAhZQR7oJ7/pJ8=; b=v47cXEqd5mC1p9zUI+jVzbRVDmMfbAxgJm9ckwfburaLhrVLDMQCMEWnl7o7SxKTm5 WbmPq65428xzbAHsJHy/Qbu6vo+EKKdiubClpqzn8ctEK8ELDEOb/SH2s2NglhGC0cgd gDgZNSyvwqETg1HDMLbfJMxmC5ZNuF2wSTjZRG8mLys71/6lXwHJVP7iHLGusSUiACxN DSjni4n+biCv/85Rl24zxV6WIlBG1bw7DwhF2asBR6Qxrg3a+Oxp7EtjUy2TxE5ZEtLc uretTAauEclYfwTbM5gWSPxw0B05m2xjqmRqjRlxQrr7ISItNCi9M847SW9YKspyqbLf +s0A== X-Forwarded-Encrypted: i=1; AJvYcCVUkZd7Op+D/pRz4RJ8J5Dok+wcVvkBsn2efYKHogKsqEmRTbRIyCa3qSPohXcPS2SSmzuuuJklZA==@kvack.org X-Gm-Message-State: AOJu0YwVajCRcaLcAeYD0Yeo2lSZ6TFK+Kdbd289bd1n2aBzMhrDbAPa gyF3YT0kHPOY9Wk2KABMM5jkwQQEPhta8tgjbpsCznd2CGxE9xMmk1rREaUierHdd5AfzPOByJD xT52jIUaLo+xBlUDR6A/QaEtp3Dw= X-Gm-Gg: ASbGncuK6+cWBpzwLd4znONkGWO1eFvG7lo4mQFCIdGOUD+wQqri9lhsCQRZQk3ezpl DnxZ6VRyrJh6AgplPMD3p8iiPGeE3tfkXkXxdvtKXNjjFKR3fvVnx/1zj/wfFrh9ept/KHMiPL5 ZICUPGYUnZorrSkpVkTO4ukbN5INorrC/8hX7Z3ME9vD9DBsI6iAKb1AGR X-Google-Smtp-Source: AGHT+IEX+FZMqw/uKIyLvjuLIVQFBZHkjVI/CUtdYx+oxdxQMzv1hpI+TEDGWokkbPtcXqceiLtWpgt7xJ7OwvQ//Fc= X-Received: by 2002:a05:600c:46c3:b0:43b:bbb9:e25f with SMTP id 5b1f17b1804b1-43d44d75804mr24674625e9.6.1742492399899; Thu, 20 Mar 2025 10:39:59 -0700 (PDT) MIME-Version: 1.0 References: <383482f87ad4f68690021e0cc75df8143b6babe2.1739866028.git.maciej.wieczor-retman@intel.com> In-Reply-To: <383482f87ad4f68690021e0cc75df8143b6babe2.1739866028.git.maciej.wieczor-retman@intel.com> From: Andrey Ryabinin Date: Thu, 20 Mar 2025 18:39:35 +0100 X-Gm-Features: AQ5f1JqCTLk6bw5pMZNlmkGp7az-6cdHmNjgmKBcGwH1kgc8PZz3csgjGnMk__8 Message-ID: Subject: Re: [PATCH v2 09/14] mm: Pcpu chunk address tag reset To: Maciej Wieczor-Retman Cc: kees@kernel.org, julian.stecklina@cyberus-technology.de, kevinloughlin@google.com, peterz@infradead.org, tglx@linutronix.de, justinstitt@google.com, catalin.marinas@arm.com, wangkefeng.wang@huawei.com, bhe@redhat.com, kirill.shutemov@linux.intel.com, will@kernel.org, ardb@kernel.org, jason.andryuk@amd.com, dave.hansen@linux.intel.com, pasha.tatashin@soleen.com, ndesaulniers@google.com, guoweikang.kernel@gmail.com, dwmw@amazon.co.uk, mark.rutland@arm.com, broonie@kernel.org, apopple@nvidia.com, bp@alien8.de, rppt@kernel.org, kaleshsingh@google.com, richard.weiyang@gmail.com, luto@kernel.org, glider@google.com, pankaj.gupta@amd.com, andreyknvl@gmail.com, pawan.kumar.gupta@linux.intel.com, kuan-ying.lee@canonical.com, tony.luck@intel.com, tj@kernel.org, jgross@suse.com, dvyukov@google.com, baohua@kernel.org, samuel.holland@sifive.com, dennis@kernel.org, akpm@linux-foundation.org, thomas.weissschuh@linutronix.de, surenb@google.com, kbingham@kernel.org, ankita@nvidia.com, nathan@kernel.org, ziy@nvidia.com, xin@zytor.com, rafael.j.wysocki@intel.com, andriy.shevchenko@linux.intel.com, cl@linux.com, jhubbard@nvidia.com, hpa@zytor.com, scott@os.amperecomputing.com, david@redhat.com, jan.kiszka@siemens.com, vincenzo.frascino@arm.com, corbet@lwn.net, maz@kernel.org, mingo@redhat.com, arnd@arndb.de, ytcoode@gmail.com, xur@google.com, morbo@google.com, thiago.bauermann@linaro.org, linux-doc@vger.kernel.org, kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, x86@kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: F1102120007 X-Stat-Signature: i5gkqm4ucguu93beeouum77wb4bzosbj X-HE-Tag: 1742492401-801441 X-HE-Meta: U2FsdGVkX1+KT1dNmfJMSeDXEv/O8Z5uS309k0cqoR4ew3475gp/XmxYPx82oXn3f9oPdKIXopbEUbLB1qpR98Qzb1jhTqW1RETVvf5e4ejjegnJ9gB9+aOfruZ8VPRWtvkx6+9iPn9BWDu+yTsFyIYyAqX4Ec9oje5uiSl+6gLPVq7/0JMVinMmf47NwKf5CuVL1wmMUHCYKtEDQVYG73y04luvnIgPvAjnbRMMW0bwgTvy/PsP3PI0fASFT2IgwsJvszGgd+tDLR5OsnlAw07hCSBHqZwCO3DYiTqLejkq6DyFl4qD6btu7CkXj5QGhJ1ZU6gVXbpiRg28rGVGXrdfMEramAwsQrhLbVnc2i3nMIngG3x0OVcaIssX3qsPnBsAVgk3d2qRZ8GvBqkySX1k5+x2JBJVjNTi38THZvJMLfCdOMh6ekpqHMPki62LJyKYRr4dE6VYZUrThETOtzFgSlJQKSph+MGeo3Ea0URPPu04Aov/s4CmyOaS5/6/pfj9OJ48UFhBwxaVZBnRPkU79XeqUUImW7umQtHwIsFefNu+eSYJNJ8UysGk0ydKnufcbsYx9xJvf/MGhYX+BqI1tZFBFQwKCFRL+6Ro8BsKaB8GnHCh/KRtfIa93Wl/XQOt/66dLYXMfTI6qahesJZS04zBd1+O2sw6UZI9bODZQuXKAV1ZW6ySJVSoLmw9XdcGm3VJcN1L+nQl8MzaY418zseWfbuaAq6yih2anNvCO3PJzNHzTAyEBGhAomRbizYlJkMshTrUo2ZSnGMx96s4kinQEX8SaUZVVazPovHB7pGBS2d+4ZW+Ww0Te/fGBHDAIEdij4u3US93bfp6GE2x+hiUNmc682arEH1ZoHgBpzewYUXjxM8ao0jjBNSJphHIcLL2ogAwdmIcL1cezleJDWGmXkMgIPDytN1R2cXt/hxzx2Vozs0cHxYAeFwtx0Ooc1v/haEcPkjcZFX 7QQ/m9hj GZu3YbXHoSGY7lY6prejQnl0jZYqFhmrkRn2KNXN0SFdsF1V4KCaPYlxsy7Da3ykLA6e4rzkZ76Q3H3hEQL0TDMmI8iCYKDfpURU5YnLeku9CLTQq/WXUuzcp77itpXmy5j30uvAR9VSYPkYvgA40lLtYIO5fEbr0lNlewmLesgSShYgjxePxHOquSVb2RNSMV3VKFppEVwSII9vi26fsnrddbwEpqLjGpKkbR0PRU78ebkJWlGi9d4l2PACSpw3ndiXep7I77L0TewxROzIqfIP46+4tr3EQD/hZbTg9TdCcTv3U2iALHufryZ3yLDYkF0gHrysiEo0FcbyRz9TsudWXw7vbnXLsv0YIt0N8Jo8UCoypLHhUpr89Jkjj1BxmrG71kIKz2pllZlkHSvJM6RqAnEf1qeNJPxpmUjPCjoGOs3WoxbBHbsQvYRJsO0rQf4th2KrLpXdxS3W3BE3p3Tx9X6hniZMGgnYH 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 Tue, Feb 18, 2025 at 9:19=E2=80=AFAM Maciej Wieczor-Retman wrote: > > The problem presented here is related to NUMA systems and tag-based > KASAN mode. Getting to it can be explained in the following points: > > 1. A new chunk is created with pcpu_create_chunk() and > vm_structs are allocated. On systems with one NUMA node only > one is allocated, but with more NUMA nodes at least a second > one will be allocated too. > > 2. chunk->base_addr is assigned the modified value of > vms[0]->addr and thus inherits the tag of this allocated > structure. > > 3. In pcpu_alloc() for each possible cpu pcpu_chunk_addr() is > executed which calculates per cpu pointers that correspond to > the vms structure addresses. The calculations are based on > adding an offset from a table to chunk->base_addr. > > Here the problem presents itself since for addresses based on vms[1] and > up, the tag will be different than the ones based on vms[0] (base_addr). > The tag mismatch happens and an error is reported. > > Reset the base_addr tag, since it will disable tag checks for pointers > derived arithmetically from base_addr that would inherit its tag. > > Signed-off-by: Maciej Wieczor-Retman > --- > mm/percpu-vm.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/percpu-vm.c b/mm/percpu-vm.c > index cd69caf6aa8d..e13750d804f7 100644 > --- a/mm/percpu-vm.c > +++ b/mm/percpu-vm.c > @@ -347,7 +347,7 @@ static struct pcpu_chunk *pcpu_create_chunk(gfp_t gfp= ) > } > > chunk->data =3D vms; > - chunk->base_addr =3D vms[0]->addr - pcpu_group_offsets[0]; > + chunk->base_addr =3D kasan_reset_tag(vms[0]->addr) - pcpu_group_o= ffsets[0]; This looks like a generic tags mode bug. I mean that arm64 is also affected by this. I assume it just wasn't noticed before because arm64 with multiple NUMAs are much less common. With this change tag-mode KASAN won't be able to catch bugus accesses to pcpu areas. I'm thinking it would be better to fix this on the pcpu_get_vm_areas() area side by replacing this for (area =3D 0; area < nr_vms; area++) vms[area]->addr =3D kasan_unpoison_vmalloc(vms[area]->addr, vms[area]->size, KASAN_VMALLOC_PROT_NORMAL); with something like kasan_unpoison_vmap_areas(vms, nr_vms); which will unpoison all areas using the same tag. Thoughts?