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 0FE4AC021B2 for ; Sat, 22 Feb 2025 15:07:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 955536B0093; Sat, 22 Feb 2025 10:07:37 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 903B56B0095; Sat, 22 Feb 2025 10:07:37 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7A457280001; Sat, 22 Feb 2025 10:07:37 -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 5E7686B0093 for ; Sat, 22 Feb 2025 10:07:37 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id D2412B6C91 for ; Sat, 22 Feb 2025 15:07:36 +0000 (UTC) X-FDA: 83147909712.01.C00F8E8 Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) by imf11.hostedemail.com (Postfix) with ESMTP id 0318840003 for ; Sat, 22 Feb 2025 15:07:34 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=G1oKuZ05; spf=pass (imf11.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.219.42 as permitted sender) smtp.mailfrom=andreyknvl@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=1740236855; 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=70pD9gnFNEV46q1yL+XWGZJhvCSgCKDZIGACepg3f1I=; b=nKLx13vDHhQcZRIAVNs9sbo9WTWqc3UplXT4CZl5ITS++LVj/nbD2gUvCAwOltKtEsJ+SD gMGpTxBvwjqGqRpdX38WqNXixN7+06MqPXDJ6TX4+OsuZnfri3bJXXj1INd1uky+LN7xL4 kMqOorP0Oirfegtywy0rGHTuHv6+Tgo= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=G1oKuZ05; spf=pass (imf11.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.219.42 as permitted sender) smtp.mailfrom=andreyknvl@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740236855; a=rsa-sha256; cv=none; b=Ub04bXnFzo/C/C5BsuCNrofl3vyOOs9aBgbz7Gvk+guBmfh9ajgs+Bj2qa693SeLBzgQHQ AUkEv23UPCwbwTagd2Lle8QQwAhbOkm1NY/wQHLx79osDAQU0xdx4EFSYVqydIGiLJ1Zmh 8Uh1IxMyfZS2P1UOLs1gRj0Sg/kHVAY= Received: by mail-qv1-f42.google.com with SMTP id 6a1803df08f44-6dd049b5428so30991406d6.2 for ; Sat, 22 Feb 2025 07:07:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740236854; x=1740841654; 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=70pD9gnFNEV46q1yL+XWGZJhvCSgCKDZIGACepg3f1I=; b=G1oKuZ05AXJL2r4qNzN1CFV610dd4e+IR9xd4r6SN5+3UcyvCvXjnhTQhn0iXBlCnm fLxafe2f9Av5RXttv6qAAYhIIQDlkz3mzmygLQuOUel5oVbYpHsWmrQIBXKoLc2d1ld1 qCrGD13cbtEOtW+K9ZXaMAwYmetyqRVBJqTn1RRJsIqF1odUB0f8hwXtWdp+E6K2Cu65 51bu0LZNMNAbK6++NpBS0JzgwFoW4WbtFANNp3EOBnAeBqcBMJNcrLtFF3KsO4Fysp6/ xosHdy0HFBbsOAo6XAme6smkvIxQSQJkXHhNnbCM9XIuYF0+zPiJLswRoTODBeNsNETc SA2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740236854; x=1740841654; 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=70pD9gnFNEV46q1yL+XWGZJhvCSgCKDZIGACepg3f1I=; b=lxNuMGSZfkFx0PUlR8lf8lCGfBznhXNETUcmQionajD2n6rULaxVqL8a56ZRwFdjAX RQLRnh3Z1G4bp4zvUGKNIc53NchDnLp9Y6SswFc714H7KFA+9jevVUl7JDan+fzBOmzf NuuoqUbh3CZRor1cGh2aRaQYY5N8tsTez393EnIy8g1tUruFMHiEZsunfFyVP7x+tyGL 9bFtY4qXw1FhEwUz5dfCNmb9iEYLehEl9E4k4MEjpc4wDYyeKUnzUMzW/P5C22y7IfZ8 OWHQaM/ftpKQrIjPrHlMFIhG6yewyPUW5bYbU8yxQpbccblLImXC+2Clwq3acleimOtz G4NQ== X-Forwarded-Encrypted: i=1; AJvYcCV6WYxP7tydcJTVwC9Rcf9LLVvrPMetpZjzHy4+J4MvchpuZcxXQjm+QFqZcOFomdqWQqKvD9OYMQ==@kvack.org X-Gm-Message-State: AOJu0Yz/s+UNX1aC8G91Vjh8ESlMx/3SjGBFzxR0NawbNSuPV2daf/h0 GRa7aMqGkaQjjVKntk/IFlLDJEswykeXzLWb7qclqHKO43dBbE4LHIaCPD4uPJ5nQsWaQJEy2bz RiEEjPBm7pDkn3VvrgTUFbvnJjEo= X-Gm-Gg: ASbGncsWP4/Eh7wLwDqE9uc7pRWYRBlHUqesrGP7WN466DE6Gc1doL0fVAEZ4cHvbS1 p/TZKj9RjBSHbTV877jHMwHmLPhGPXaMQ5khlC474MmQUr4rI1KQbZyU2PEjlKiWU/J916HViLa WLZS7bSqyEjA== X-Google-Smtp-Source: AGHT+IGzaUBBYsZPN6nwYD9SKzKfluRv9+knK4LuyyydKSabCwcaxgNi9q2iHeK7D9X3awEI3Ddvi+fItxaGI+EwcEo= X-Received: by 2002:a05:6214:daa:b0:6e6:5cad:5ce6 with SMTP id 6a1803df08f44-6e6ae7c9f82mr95965996d6.9.1740236853223; Sat, 22 Feb 2025 07:07:33 -0800 (PST) MIME-Version: 1.0 References: <2a2f08bc8118b369610d34e4d190a879d44f76b8.1739866028.git.maciej.wieczor-retman@intel.com> In-Reply-To: From: Andrey Konovalov Date: Sat, 22 Feb 2025 16:07:20 +0100 X-Gm-Features: AWEUYZlkmxeF6xgXCl21B3APEThb1gNkBITR5DJujsdnWalnykrR9HY2cVqQu30 Message-ID: Subject: Re: [PATCH v2 13/14] x86: runtime_const used for KASAN_SHADOW_END 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, ryabinin.a.a@gmail.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, 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: rspam08 X-Rspamd-Queue-Id: 0318840003 X-Stat-Signature: tkkts6gzkze6b6niyob3gzu6hjm37jcc X-HE-Tag: 1740236854-212787 X-HE-Meta: U2FsdGVkX18R8EQwzJR1va7mmTmle3eLQNU6vqSeblaq7lqb+adMjWCsvKpEFC9WPayAdA3P+VBAPX+HKu/RV21tr8YIM9dowNrJYOZTustypiJYmX5791pJiY1U7haLS9IwZ0SyGu8/WqDqgW/yoZv0tZecu4UwLFYrWIdjYO6WC2rJYFmIQND6nleyNk55rJ4RLH899ftyiXavDX2eRk0NRnGCQ2etImaI3Xk40ZmuU2DhUPkF0mDK8NDL/E6Hq0s55WdXfoEuopoJ0sFdJPa64RF5FbsTppVURbObvi1zywelodKq8dV1OvafSewbse9fQoyRLdtYql1E9/1XMsEWSf9tVTWJ+Uv1OcRpk9VRs5jMz7oKxv5s3IljdWVDn2sZ4gCxws3V9AQ5Q0Aob3ua+chj99fIIJ0nbFaQbJHmNkY7OmWpbGhn+efw+jJVxufDftS5gtoe3qNFu0jMtguLVFAz0HRrSBvDr0xAmsL4G1f4ryoFwOplPdSdIe8H8YY+cPdEN7pVIjJBnw77a1nxGCrHJCDJq5y09lwpmAMJJEBfXTBz7fj22IsUYVvq3PHWcv590Z1caRVtXwps0X98ASXOv6LcdDG+F8S7PPhHR8/+1Nlm6B/pr8hzyf11C7LkX0iR47hg0FtnDrap5QquAJiuCNTyB3oDKYziwjsCUwOzFw7cmBdpeTp9pkO5Mph3CdAGNaPsONIBq06KauOBJkWLl7XIFzWVs1n/dI7ACwP6KaTErrnYvCA7//9Ok31grGwQA9z0ZPY6cdx6y0Q0KPLJ+DQ7YqtjvAWyQz06Uy7n7tU2mCHMLryK23qNLP/adMqcLNeW1AqSPgmrmOVYa50l+0hay96fMgj9vKQY8j3VFdm1agTy27vu99u5GTV7hodZg8XwHeiUv99MDHsbmZHMBI9NfyjvNe8W2dQOzgkaYwLlWklRy69Y9jjdyFlUczjXQKUhZ9mMixb JZRHWlJ7 EzXP1neVPNzfgwH9++/CfxSmMsffOVT5UjjKP+0j5Nb6HhMnWAFLGwAH7jhs6FGMV6bOBq2nqZzwqWytlpyTfQ5f2VU6WM7mxFUjIqVydBg1U4mlU/5FIWNoXjIwVTp91JoK/SPUPKI2fO6wLu6Spf5lA/rFpmBktVTTJrJ07stVI9z10kfyha/oUWAJy8z8oMnUaa6X1oGVGFQNa6mPvcfKoj+CSqfM06+m7x4BLL2ytNC9rDKPXLAGW+P840dhMIy3zAzsfYpOeu7lEbaiLY3s18hs4mmoN/U6D9zrYqZ9NkLmbTWisYqqpJGvnjYFHDwu8BgFuDli9Xd4C1D1xHMVj35jpzL1/TJLtvzAkXtPJUGWc/y/xKXfuS1ETzDo4YF16ynWvE+RKP5/CYB9z/Lbin/XiQI/u6LB/m1GciU7rJvl3RSv5Ird9V+FqnE2y/mp9 X-Bogosity: Ham, tests=bogofilter, spamicity=0.042748, 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 Fri, Feb 21, 2025 at 4:11=E2=80=AFPM Maciej Wieczor-Retman wrote: > > On 2025-02-20 at 00:31:08 +0100, Andrey Konovalov wrote: > >On Tue, Feb 18, 2025 at 9:20=E2=80=AFAM Maciej Wieczor-Retman > > wrote: > >> > >> On x86, generic KASAN is setup in a way that needs a single > >> KASAN_SHADOW_OFFSET value for both 4 and 5 level paging. It's required > >> to facilitate boot time switching and it's a compiler ABI so it can't = be > >> changed during runtime. > >> > >> Software tag-based mode doesn't tie shadow start and end to any linear > >> addresses as part of the compiler ABI so it can be changed during > >> runtime. > > > >KASAN_SHADOW_OFFSET is passed to the compiler via > >hwasan-mapping-offset, see scripts/Makefile.kasan (for the INLINE > >mode). So while we can change its value, it has to be known at compile > >time. So I don't think using a runtime constant would work. > > I don't know about arm64, but this doesn't seem to work right now on x86. You mean it _does_ seem to work? Or otherwise if runtime constant doesn't work on x86, then we shouldn't use it? > I > think I recall that hwasan-mapping-offset isn't implemented on the x86 LL= VM or > something like that? I'm sure I saw some note about it a while ago on the > internet but I couldn't find it today. In LLVM sources, ShadowBase gets calculated [1] based on Mapping.Offset [2], which is in turn taken [3] from hwasan-mapping-offset [4]. And then ShadowBase is used to calculate [5] the shadow memory address. All of this happens in the common code, so this should affect both x86 and arm64. [1] https://github.com/llvm/llvm-project/blob/llvmorg-20-init/llvm/lib/Tran= sforms/Instrumentation/HWAddressSanitizer.cpp#L1305 [2] https://github.com/llvm/llvm-project/blob/llvmorg-20-init/llvm/lib/Tran= sforms/Instrumentation/HWAddressSanitizer.cpp#L761 [3] https://github.com/llvm/llvm-project/blob/llvmorg-20-init/llvm/lib/Tran= sforms/Instrumentation/HWAddressSanitizer.cpp#L1863 [4] https://github.com/llvm/llvm-project/blob/llvmorg-20-init/llvm/lib/Tran= sforms/Instrumentation/HWAddressSanitizer.cpp#L171 [5] https://github.com/llvm/llvm-project/blob/llvmorg-20-init/llvm/lib/Tran= sforms/Instrumentation/HWAddressSanitizer.cpp#L899 > > Anyway if KASAN_SHADOW_OFFSET is not set at compile time it defaults to n= othing > and just doesn't get passed into kasan-params a few lines below. I assume= that > result seems a little too makeshift for runtime const to make sense here? Sorry, I don't understand this question. If hwasan-mapping-offset is not set properly, then in the inline instrumentation mode, the compiler won't generate the right instructions to calculate the shadow memory address.