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 489F7C3DA4A for ; Tue, 20 Aug 2024 19:57:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D4A306B0088; Tue, 20 Aug 2024 15:57:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CFA696B0089; Tue, 20 Aug 2024 15:57:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BC2266B008A; Tue, 20 Aug 2024 15:57:45 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 9E29B6B0088 for ; Tue, 20 Aug 2024 15:57:45 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 49CC31404C5 for ; Tue, 20 Aug 2024 19:57:45 +0000 (UTC) X-FDA: 82473684090.21.DF82F5C Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) by imf03.hostedemail.com (Postfix) with ESMTP id 6A7A620023 for ; Tue, 20 Aug 2024 19:57:43 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=R27mXnLO; spf=pass (imf03.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.128.53 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=1724183824; 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=I04d+UCyEJKSGzYujs6lGhbuTD9A1sKvAATpdsPOPRs=; b=dJZdgXP1u3gtcsObzj0npqKZnZ9AFHM5Dw8GWq2OnZE2u7d+S30wS0pITo/NFWagekPImr mxDig9pBQqmpttzyaz40wB/lrOJxxINUmTrCmlI6gdBdKO5LFcnClBT6RoZg/9NpUUg8lX V5eG9NL9LeaG3gix+/Zi1/enaaXYnMU= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=R27mXnLO; spf=pass (imf03.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.128.53 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=1724183824; a=rsa-sha256; cv=none; b=hAdgnZvzIxfoNUDoJipKslwL7YUr9AbiwjcjqZaWobAmynbo20WcHEc+2JqJEILvo1e3Sb 0iVitFsdix7YMP7e+6WUPU/TbFC9NmbLVfiUJrGfGUmo49BySaModGg3tKzDczkN/UO3Xm 1eEfUxTbgLUgshCXkMfRy7hHk/eXMRk= Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-427fc97a88cso50133455e9.0 for ; Tue, 20 Aug 2024 12:57:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1724183862; x=1724788662; 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=I04d+UCyEJKSGzYujs6lGhbuTD9A1sKvAATpdsPOPRs=; b=R27mXnLOoq9VuIrf2yDxvn5I2kR/Dg+q6//DT+NgN9VapMoH1AnSH7zD9zydAA+IeR VfrJtF3HNy31F/LpKwmpl196kyQWNu9TWvLADP1bMxcUpxI1LC2/7dH7bMYAXgaF7UhM UrbJMT6mBP5/y5yEo1aBAMnhcgi8Jb6AM0VEcozF6j929SLlPELZYoqaPuTfAIacmr79 9C2yOSsPVh1dCjwmFyoQzTC6pUt59IpKks/OH1x93rSbpdXxOf7sWB+1PYO5zc3ogB7u lNr6o29RyganKb6d6lNHh65FymfIQMCmSsNWwdf4LQZuH3H5eIM89/QIqzb0Z0X6EAts a5SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724183862; x=1724788662; 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=I04d+UCyEJKSGzYujs6lGhbuTD9A1sKvAATpdsPOPRs=; b=PcOUuHaLLk5oiv9YxLYftNwpPiSB0tub88yqlYc+P95EqLJmaLf15mPT6BpU2SE2co 1wEoLdQoW1YXriLhRx7RFcoJC2sbn7Iuu7Qwz6KxLh4YoHr6YpgZVkUG/gEls5c+y9Eq UFuhcE0suvK5zeRXZ5CSD8weiiLeI6NGqSyaGzTOlh5+icXGxi8EO3ADupOcKnXBadm2 PREiq8n7QRLRjUFcNu1Chhou68Cg3UcCIAjLxehzgpX2049VZSGBpGFAD2sDmTBc4GNa fFUVCNMUE2AceCSPxqRA0qvDhiMz6jEh6IkuuCXlSeLizkimyeFrPMOBnRx8XpC2J6io hwZg== X-Forwarded-Encrypted: i=1; AJvYcCXJ/HI7uVV2zNq6h1NIT8lhhNdSkkWQWWsJPrDgGOFUaNXXfRgpDWiJ3q1YEcE82XTsPP/vkZ9CyA==@kvack.org X-Gm-Message-State: AOJu0YyuxRRP11Q39hYA1z4ce2b9yR7PyYX/Vc6zjRC6+/hh39xblpUJ iHs7kgov8n9oIvTSlNWI61KLNuaD4mKM4cHxkCFWk3+QazPTi8q+cqyGVVNDGExROwk9IY0ze/R NoXrx7HFje7L7hH0lqsEzW0d8TU8yl/Rx X-Google-Smtp-Source: AGHT+IElLP3U6GC5jiblsqfmTGvnchVDzLv7QwlAycsREo1k3dgNT3ZyETsIYu2PzzvOhij5top8TkrmV+tZLhPVzvY= X-Received: by 2002:a05:600c:3b83:b0:426:5ee3:728b with SMTP id 5b1f17b1804b1-42abd2300d2mr2526935e9.13.1724183861809; Tue, 20 Aug 2024 12:57:41 -0700 (PDT) MIME-Version: 1.0 References: <20240820194910.187826-1-mmaurer@google.com> In-Reply-To: <20240820194910.187826-1-mmaurer@google.com> From: Andrey Konovalov Date: Tue, 20 Aug 2024 21:57:31 +0200 Message-ID: Subject: Re: [PATCH v4 0/4] Rust KASAN Support To: Matthew Maurer Cc: ojeda@kernel.org, Alex Gaynor , Wedson Almeida Filho , Nathan Chancellor , dvyukov@google.com, aliceryhl@google.com, samitolvanen@google.com, kasan-dev@googlegroups.com, linux-mm@kvack.org, glider@google.com, ryabinin.a.a@gmail.com, Boqun Feng , Gary Guo , =?UTF-8?Q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Nick Desaulniers , Bill Wendling , Justin Stitt , rust-for-linux@vger.kernel.org, llvm@lists.linux.dev Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 6A7A620023 X-Stat-Signature: 6fy71p4uyoh88os4roxhodbo1te6zp8h X-HE-Tag: 1724183863-395930 X-HE-Meta: U2FsdGVkX18KKXw3gv48xDnXZBr4YgDhh3Y3J09wVm1mrbzmWr2p9FWUv5Nkeg3tUAtBD5w+VBrHStT03hOvRuw6zSJlm/yFpEdX09mRt3jpiIaYI8cNqDYbliSEIiYWx5YBTTlh9UiiSRCwWdA0s2kMGYFhVK3WTue7EDHBpiDH6i4gFUkrjgpB7a+P3GRgcQ7UibEx2isCFA9flY8GuZYNtHMsaoPV7ciEiBgtSsya9g2fzXhB+goUH0rGMR1wRFncsJDusG66HBRfeOYZi6TNsVNXVDzEYEByTSWbM/bEXAae5F5JWwlpfnNVvqQxX+YGKD5FcJhXcDtnOGXPkEA08O/CoBwcmWYMtJ8JvXRx9VXs40TNdcUFkJJ0TLP+uAfsJR6okeVoEt+qCieh1r7CUjfBoxYMT9wKB+oZbIlCIytCzDhvidD6T+Zac9XHdNjkRcF5rt7Lra1HVjfFbG5q8RpLQgLxpqUtkX2DieNiAw1nF+AJQjMotaqjFP/9PFvH3nPIGOhu21m3lpoP4sFlHV25blg+3DGW0WJXdhDBt7hAbt4lVTjXueB7n2wW+JofI+RnRpRE5JGLUeAsxfmDDFaACDzsr2M0URKvlSjatiTPcasWFOVCXxRmAHFF4XYxUG/5SxqnvKVo1XxuA47glZL31KXGYXMo4+eZLqJNUTfcwg9SVF7iDylC4sDP+E3SaLvIrvJ7E1fMRJG5q9pQsMOp3PFeivTKknKiCPh2eY/Wnj0Jmt9gOvW2yiSTk175laxNrqwHr8jE+3SHJjyvA+Xwy+1FhVlaeZE6/0jAb93x87XcLMj/I1BP7KzGwbHxxfB0jjG2aUzErJ2/pJk76Ey+tTr8y1+NQ0d2evTkalECxSGpIF6LSN7hx2Ob6DgaiD9mA0Enwlq1NOrPRD2hljqW/nsJ8MFAIUCDnJa2CJf3AFIL2ReFLWd0zdPjpUJriEX8wi1r1xDa+0b qjK5AItx AwJ/a6Mpp55j7jtkmWhjy9ZhkEKyf1qGflFl/+uNvjtRi/ZoczCwCnHn84KfUZqsCc1JkBcxxh4zspTKdNfex/HZK8oVLdkNsmReHkzDcpI+WsWTb7cfPptKd4s0HvygLYMS22isBxJPqahh0tY3MDFYsUa/SsPET7QK9yBeipaoA5lqec7jMtmBJXNvvhE2YYiwnhzvC+31EILgFOPAHSYw5fOYqOwcNQOGY0TWQP9YbE1VutYAghcPbkBW4amZpufqIwK+XN0kiK1F9TwzEb16ja93vPAk9YBy94zOpx0RpE/MJfrwDb7kPxMbLyAM6BxCFyWh6IwFtzZ4Yqt0Hug+SoS0WjPF08qPd5NvLLe75JHYl00+V50ZrUCkx5jVpnMP2ueamXiTLN73RiqL9Z9IfPUlNWk9anbAQhhfjMlW8EB0gtQUnNlI0evR+eLUltIUK0eh618f/SEh4YcXKSoo8G/PjckteARGv X-Bogosity: Ham, tests=bogofilter, spamicity=0.002026, 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, Aug 20, 2024 at 9:49=E2=80=AFPM Matthew Maurer = wrote: > > Right now, if we turn on KASAN, Rust code will cause violations because > it's not enabled properly. > > This series: > 1. Adds flag probe macros for Rust - now that we're setting a minimum rus= tc > version instead of an exact one, these could be useful in general. We = need > them in this patch because we don't set a restriction on which LLVM ru= stc > is using, which is what KASAN actually cares about. > 2. Makes `rustc` enable the relevant KASAN sanitizer flags when C does. > 3. Adds a smoke test to the `kasan_test` KUnit suite to check basic > integration. > > This patch series requires the target.json array support patch [1] as > the x86_64 target.json file currently produced does not mark itself as KA= SAN > capable, and is rebased on top of the KASAN Makefile rewrite [2]. > > Differences from v3 [3]: > * Probing macro comments made more accurate > * Probing macros now set --out-dir to avoid potential read-only fs > issues > * Reordered KHWASAN explicit disablement patch to come before KASAN > enablement > * Comment/ordering cleanup in KASAN makefile > * Ensured KASAN tests work with and without CONFIG_RUST enabled > > [1] https://lore.kernel.org/lkml/20240730-target-json-arrays-v1-1-2b376fd= 0ecf4@google.com/ > [2] https://lore.kernel.org/all/20240813224027.84503-1-andrey.konovalov@l= inux.dev > [3] https://lore.kernel.org/all/20240819213534.4080408-1-mmaurer@google.c= om/ > > Matthew Maurer (4): > kbuild: rust: Define probing macros for rustc > rust: kasan: Rust does not support KHWASAN > kbuild: rust: Enable KASAN support > kasan: rust: Add KASAN smoke test via UAF > > init/Kconfig | 1 + > mm/kasan/Makefile | 7 ++- > mm/kasan/kasan.h | 6 +++ > mm/kasan/{kasan_test.c =3D> kasan_test_c.c} | 12 +++++ > mm/kasan/kasan_test_rust.rs | 19 ++++++++ > scripts/Kconfig.include | 8 ++++ > scripts/Makefile.compiler | 15 ++++++ > scripts/Makefile.kasan | 57 ++++++++++++++++------- > scripts/Makefile.lib | 3 ++ > scripts/generate_rust_target.rs | 1 + > 10 files changed, 112 insertions(+), 17 deletions(-) > rename mm/kasan/{kasan_test.c =3D> kasan_test_c.c} (99%) > create mode 100644 mm/kasan/kasan_test_rust.rs > > -- > 2.46.0.184.g6999bdac58-goog > Left a couple of nit comments - feel free to ignore if you don't end up sending v5. Otherwise, for patches 2-4: Reviewed-by: Andrey Konovalov