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 CBE1DC2BA18 for ; Thu, 20 Jun 2024 14:18:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 46F356B03DA; Thu, 20 Jun 2024 10:18:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 41E116B03DE; Thu, 20 Jun 2024 10:18:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2BEFE6B03E1; Thu, 20 Jun 2024 10:18:55 -0400 (EDT) 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 0F0796B03DA for ; Thu, 20 Jun 2024 10:18:55 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id BF310401D5 for ; Thu, 20 Jun 2024 14:18:54 +0000 (UTC) X-FDA: 82251473388.03.FE0353C Received: from mail-qv1-f50.google.com (mail-qv1-f50.google.com [209.85.219.50]) by imf06.hostedemail.com (Postfix) with ESMTP id 04AF2180006 for ; Thu, 20 Jun 2024 14:18:52 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=DqyFnNB4; spf=pass (imf06.hostedemail.com: domain of glider@google.com designates 209.85.219.50 as permitted sender) smtp.mailfrom=glider@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=1718893128; 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=oVpLK2lHnHY7pIeS6zCf+0/9yVq/jqYVxmvNvh0uGr0=; b=Ki7rKUfhETd7Nl7VNQW9mE/KtoZ6H1jMzsL4ztZsM4dEWf+GW1aUrisyVBtDT2G6XU0Qt/ DWJ5w3Zyp8eFXtXi562RzvivsNDH5fpEF4dvQXlL+WGUQEgnpulo8W04EX6xUQxt+EnHAH N08jAGznJUWQLqvCwuxf+yMJdfNtOzw= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=DqyFnNB4; spf=pass (imf06.hostedemail.com: domain of glider@google.com designates 209.85.219.50 as permitted sender) smtp.mailfrom=glider@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718893128; a=rsa-sha256; cv=none; b=aX9+R8CJjVKgVc75dXezwnM3mSfS8Z20sNJa7oVC7DtDBfOTaveYbJwpA6yifIa7dBw9BG ZPfLuFJ8EnXFzycVqimhAtPg8dwOW02YAaSsmZoqIgNwcKF/hqaLh2Wg/qdWIE8jcZPFuy zSzJ7PDQRvTi8ZYzuWYnJJ0uxaOVgFc= Received: by mail-qv1-f50.google.com with SMTP id 6a1803df08f44-6b505f11973so13068496d6.1 for ; Thu, 20 Jun 2024 07:18:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1718893132; x=1719497932; 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=oVpLK2lHnHY7pIeS6zCf+0/9yVq/jqYVxmvNvh0uGr0=; b=DqyFnNB4TsVumRvz2lhe80+I5d/vkWKdsnmOIT9mhm1oQDrK+ExwKeCjfuch76EzYc Uq0tuo4cK7pmyOUNVDZRanN7RQ3TNfr9fM/CsueT5E6pFEpK1/xX9FNlK4VyGf6MlNFU gmc8Bq043lgVVfIsVuOlMtSyTjqCJ9jGivbDVrk3CNcVwzyiM431EQ+w5aSytoOsZ5wf oTjWDKCXlxLruPKB6k01GkBwUtIpUDZkzPXsCwlvuB7L1QHhzutZzRAY48ac3h7E8Eq7 mqwYYftRkgTrRO3nODFBlKVPisqImsGoW0JqEqmy4WuwVbj+HRBQZtbR97L+StP6gB+E delg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718893132; x=1719497932; 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=oVpLK2lHnHY7pIeS6zCf+0/9yVq/jqYVxmvNvh0uGr0=; b=rOVMwlfxJv+0oOrBfOBaqaBbYf4fxOPizivxNr9pVSxVSuirG25Zsk0orjzKBEX6tZ XngVHQXxIzSpRPCerm/iYDBA3187TFmcEgKc1krh4evhF7TZDECAcJjWmQUSC8XfWLhi kzoSHPpT/eXTofdiCGqVDUvfxsxCwTV+q6Y+vxBOdVs2LYeqdArmSNswj47GRDbRajB0 jhmjW3Yx1jQ5LifaoRC7EUr7tGz/YYLuqhqq+AeOC4zdB62a25NxFbiwLYWMulSwUAql jMCJMuDrYkTdDyJXK3P1FxKlEUrUoFJA+dLCSaPUFJU3V/aGYINJUL6DQzhEeZbkoN3O LMMw== X-Forwarded-Encrypted: i=1; AJvYcCXOIbrv5z6EIrnHfRiyB8++vh5b0SVBRJJzmaBiNMMmhJJAUyxSRy8MZ9Fh9NR7TgzSt9lKjXdGEEpfOCWQZNoy158= X-Gm-Message-State: AOJu0Yy8exrn2QvCuqPF/bkoqqb5Ism7/ZpcfBJ1H7vaJWzArJkayq4o p/Ks2s1W6NVjsXAxUR7tfUjND1AZXDbPafeLDTDNRUzUDPzpUTae9753vDUXTenATSRFkNCWRJX liePUagqfvC3NolRh8S9/RXu6udB7DTkSiDhN X-Google-Smtp-Source: AGHT+IHtcnbXmLmpEfj+IiY5XUc5XEkQvdka2ksT8Hxxn2saxQ3/KSY2Ox1gfyNah9/uoeZO0QSSo5ueNjvRU+cQOC8= X-Received: by 2002:ad4:5969:0:b0:6b0:8ac1:26bc with SMTP id 6a1803df08f44-6b2e2312207mr142468546d6.14.1718893131865; Thu, 20 Jun 2024 07:18:51 -0700 (PDT) MIME-Version: 1.0 References: <20240619154530.163232-1-iii@linux.ibm.com> <20240619154530.163232-37-iii@linux.ibm.com> In-Reply-To: From: Alexander Potapenko Date: Thu, 20 Jun 2024 16:18:15 +0200 Message-ID: Subject: Re: [PATCH v5 36/37] s390/kmsan: Implement the architecture-specific functions To: Ilya Leoshkevich Cc: Alexander Gordeev , Andrew Morton , Christoph Lameter , David Rientjes , Heiko Carstens , Joonsoo Kim , Marco Elver , Masami Hiramatsu , Pekka Enberg , Steven Rostedt , Vasily Gorbik , Vlastimil Babka , Christian Borntraeger , Dmitry Vyukov , Hyeonggon Yoo <42.hyeyoo@gmail.com>, kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-s390@vger.kernel.org, linux-trace-kernel@vger.kernel.org, Mark Rutland , Roman Gushchin , Sven Schnelle Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 04AF2180006 X-Stat-Signature: 9u7k11bapmktgkn8xk1erund1ujpqm9z X-HE-Tag: 1718893132-979240 X-HE-Meta: U2FsdGVkX1/VC1cBelAhY8mnubUIwgqD9YN6lCK+skAYY+g1FK6BBk59RdwtvKoZ9uA4mxHcX0JCTeV9tMWIHSEmaNj5QL9OMeycnMebzuUArTfNymtetaqnXnG+gEcH2669CC9PsfOjxtC9pUgh9TGXCF00eM9R3fMS54GC7698wmP1VCusgTBdwCM3D/+vEhpYyCno68bgKVtH0U/Fb7m680RhegZhzp/SEdoiFE9mfSnyaymeMw9Pre93hJo2/CTnonr2WHSCP9OvkMkfUPiOWnn9QI49o/mV+DrmgvDJ3TjhH6FOjPNM861fDLM+gXILtLjxBys0OneYoUEGJdtuTZiy6+KPwTYMoRNgaXL9oQD/PZyiWipun1rOsGs8QIcxBDF8Zd367qp+HAFSI2q/b/X3m5temsBCAV5JBRsw7LclZxr1hBenKZuUAqn2aNdtos0PPKyho/hyCopHqMss4d9BFy1YlVLrAc4vgIIKoN+KZC6rUoAV19QDd9w/Wn75eXIgu0hgkx9aIa1lk4d6nLxuanq/0lvwIQbUluTploaIC4IcwLUM/M8y4ysy7T66Uphqr7q8YHOf49N/kUSZh9/oxM8BOU1XWAdpGcNJq2tKuEn6cLHVH2D5CBMfoHnsGkwvWfixgiYVw8ixtPRQTDVJSUugD8jHlP4zKGw9l7gt0dRfOTiR8aBGRqwbDLXL0zQDYzOQvsu0spHj2oatQO6FEViXhwBdevH5acq72lnCIQPvSlLIaBDheN4XAmEycTF7YTgu5VPDY/fGwjZu3SgsjPTR7koP7fNvEErOQazRB8wYFMal0jwoqpu5N8AhkLTDIZvntUWzFDqxOmxLmZNpMAI+f0V/81Jsq23k+F5a5mb/5ySr88KTjZ+jI+/qJGMzguApsgGPXsX6xZMBteevTrhOzTmzGCGYwk5VBtHUY7fPs0OgtzFJIyUuYpUeLHFEiiqMBjHxWP6 1kUymSXf glZQBEENEhIcVa7/lb/MzCEOBW3Tqi/StwpniVBzWPIF5v1B6YFdva2MC1u0wnkFzp8iKTWKh9AmfIqwHiq8A72hPGXYzbU0E3GonlEqFH5W6Z3MLfJVMPjX/gmLzidQFx9BeoKBNMcUS5BR/AFttkE6KRTImxH1Z6A6pT0uU2nY9lIYHXlXW+wyRVmXq10MSkl16AGXRB0oXwJXUqCEH0eIWmTmvGudbBCbgs1smPRWkErnQQsFRGWh9AR6h9mjwuz4Tr3ChLcpaZRPdZkPMDEjtE9Z95ePs+Jhga4gUvKohPm0Tf9+OBBvKeNfMSkW/v603 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000172, 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 20, 2024 at 3:38=E2=80=AFPM Ilya Leoshkevich wrote: > > On Thu, 2024-06-20 at 11:25 +0200, Alexander Gordeev wrote: > > On Wed, Jun 19, 2024 at 05:44:11PM +0200, Ilya Leoshkevich wrote: > > > > Hi Ilya, > > > > > +static inline bool is_lowcore_addr(void *addr) > > > +{ > > > + return addr >=3D (void *)&S390_lowcore && > > > + addr < (void *)(&S390_lowcore + 1); > > > +} > > > + > > > +static inline void *arch_kmsan_get_meta_or_null(void *addr, bool > > > is_origin) > > > +{ > > > + if (is_lowcore_addr(addr)) { > > > + /* > > > + * Different lowcores accessed via S390_lowcore > > > are described > > > + * by the same struct page. Resolve the prefix > > > manually in > > > + * order to get a distinct struct page. > > > + */ > > > > > + addr +=3D (void > > > *)lowcore_ptr[raw_smp_processor_id()] - > > > + (void *)&S390_lowcore; > > > > If I am not mistaken neither raw_smp_processor_id() itself, nor > > lowcore_ptr[raw_smp_processor_id()] are atomic. Should the preemption > > be disabled while the addr is calculated? > > > > But then the question arises - how meaningful the returned value is? > > AFAICT kmsan_get_metadata() is called from a preemptable context. > > So if the CPU is changed - how useful the previous CPU lowcore meta > > is? > > This code path will only be triggered by instrumented code that > accesses lowcore. That code is supposed to disable preemption; > if it didn't, it's a bug in that code and it should be fixed there. > > > > > Is it a memory block that needs to be ignored instead? > > > > > + if (WARN_ON_ONCE(is_lowcore_addr(addr))) > > > + return NULL; > > > > lowcore_ptr[] pointing into S390_lowcore is rather a bug. > > Right, but AFAIK BUG() calls are discouraged. I guess in a debug tool > the rules are more relaxed, but we can recover from this condition here > easily, that's why I still went for WARN_ON_ONCE(). We have KMSAN_WARN_ON() for that, sorry for not pointing it out earlier: https://elixir.bootlin.com/linux/latest/source/mm/kmsan/kmsan.h#L4= 6