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 1338FC636CC for ; Wed, 15 Feb 2023 08:58:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 988596B0074; Wed, 15 Feb 2023 03:58:20 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 938196B0075; Wed, 15 Feb 2023 03:58:20 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7D87A6B0078; Wed, 15 Feb 2023 03:58:20 -0500 (EST) 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 6991C6B0074 for ; Wed, 15 Feb 2023 03:58:20 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 2B55D161527 for ; Wed, 15 Feb 2023 08:58:20 +0000 (UTC) X-FDA: 80468924760.01.0C46D3C Received: from mail-vs1-f49.google.com (mail-vs1-f49.google.com [209.85.217.49]) by imf10.hostedemail.com (Postfix) with ESMTP id 69E60C0014 for ; Wed, 15 Feb 2023 08:58:18 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=CVBzeQ0d; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf10.hostedemail.com: domain of elver@google.com designates 209.85.217.49 as permitted sender) smtp.mailfrom=elver@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1676451498; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=DcGGlaYPqY4tYzxSZdNCJiJzK/DPCL1PbAxHODA+Moo=; b=6G3FoI+qahFyCWIW3WzarpRPAD8OrrDudAhhLP9hgwgnT9ZlaFn+FXAQUMkf46na1W8ZzF xL2iUsHjq6nVLiubbXm36HQ8obzUvmNc6m4EPehVixRsYjy2nY8ptiBAhBhtgJqoueQ1Wy XPf3rH+cYKYCp7fyhFWydvn58ZhcSLk= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=CVBzeQ0d; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf10.hostedemail.com: domain of elver@google.com designates 209.85.217.49 as permitted sender) smtp.mailfrom=elver@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676451498; a=rsa-sha256; cv=none; b=Sp7ceb8zLLOpLzBz6FCRXsh0kjLV9RY7Tri/lXSbp3xa0wODuFuVAgZmuM65a2g8eVVAm6 hkLckKTBvXmXMB0rHHR3ijWkz0iBwRKJNki/d5J+hDO4QgLwkFP9tvENLJF4dGRRoYu86K Cm/Bq8ppvegSvLSENa+MRZ79PgPXovw= Received: by mail-vs1-f49.google.com with SMTP id k6so19191628vsk.1 for ; Wed, 15 Feb 2023 00:58:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1676451497; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=DcGGlaYPqY4tYzxSZdNCJiJzK/DPCL1PbAxHODA+Moo=; b=CVBzeQ0dYbsnCDfKvSNW0oP/l0G2i4gLfTFVglARKOdmKjJHkGRufworM4PaVNI2XK 4fRJKeGL6IiUzgu8G/eux1LkuN5fruC9QqTt2qKl9ayZdbK+GzSzHOJaSuWpGXTnFeyM 4KdiTSQenC/8N2cY6PrJzKg3gbzzUziJhaXzGU7qet/p4yR24w1IlFSNaKc6edXnocoX Gto0kiyMYlmPayaGMPRFF+TAsmRj6sXmmjyZVwjGfJTk9DfsNDNW9oB7vHNKwGKQ4ZRg 55B9HiBoxHSYDXJSvL06LxC3GaSmisXlbCbFTn6L5tw2vcx0P5CapkbPxUT5e14RNtww xOFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1676451497; h=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=DcGGlaYPqY4tYzxSZdNCJiJzK/DPCL1PbAxHODA+Moo=; b=wnQrcZrZnn1F0lNQaXYSQmieuy+yDtXl0UDcS5ZBz7AhdS1Va6xhMvgml6nFXoVKnB FmPEsE9+iMNEZ1cGpC4ocgju1lvZ/DXX0RGL4SPar25GZyHebAoZ2RDnVsG8uLJWGXPz yBOQxEEULbQLiPsybC+MZ0wy5+jxxDh2otb8l/Q+u/V/gR79Xnywk9wpnBsxYKD344Ip OUnc5ow8V7C2gvXJQeQGgCLxnkTm+TeA9bSu8it1edcgzQuzHeYG/9VT1vGOZBjitYx1 fFSf+MSOLhcOBKBXRaYp2bPiEHfEFbtB3GTR2iIAqadf+36DDunekkSfuR3QDKoyPG2d WvmQ== X-Gm-Message-State: AO0yUKVu00QNvlus8Ob5zhQ5x3+ZTZmSxmP19acndIejpOrG2xeY/BCb v4C/mWW1UXwDMArxoEM8fCE0vsP4sDshn2bdNJqKJw== X-Google-Smtp-Source: AK7set/+8nuXNdRVrooT+d5NwgzEBPKwnKN2U6y4WQjWCLFfsrVDzHoyZVdv1D1JaQk8PJnUDZLS2EkrDasRsy1J24Q= X-Received: by 2002:a67:70c6:0:b0:412:2e92:21a6 with SMTP id l189-20020a6770c6000000b004122e9221a6mr311416vsc.13.1676451497458; Wed, 15 Feb 2023 00:58:17 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Marco Elver Date: Wed, 15 Feb 2023 09:57:40 +0100 Message-ID: Subject: Re: [PATCH v3 1/3] kasan: switch kunit tests to console tracepoints To: Peter Collingbourne Cc: andrey.konovalov@linux.dev, Andrew Morton , Andrey Konovalov , Alexander Potapenko , Dmitry Vyukov , Andrey Ryabinin , kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrey Konovalov , Steven Rostedt , Masami Hiramatsu , linux-trace-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 69E60C0014 X-Stat-Signature: 38etjj3tybyppmrcrfajm8afxhq15a5p X-HE-Tag: 1676451498-544339 X-HE-Meta: U2FsdGVkX1/wvg6Hee9Bec9ex3qVwlcEYKl5cdk5phojwPrz+pueaoi1R22gTe51WTve3a9eXTyEa/VakceoBKpWrT2WdP2QAWUovA/jnHNESfJbQb6U+QgEIOF1EzmwDZl8WEMsqrrBjIWWadfJAIdIqYbozlJLapWqoh3VO8cp6yy1wErdOXTaWBIK3ZfZaJXgQ43c3JZOYNXnnrOF2sunr76LoshkLj4LNnWRxBdy5YPc0VAMI9Y2JVfvHi+ZdipNtDxy/uKdzCqBFSpy8m1gBrkcdO8CFc5pkvRDlJDVxLC0QtVaJbb48GJ/9ARaoFvrTf4f5grJV2neThy69+mOoyYmrDPN/w/Z+dDt5AHbcgsRzu/NCky8d6QdQmNDbAccJAQYKkOzITmPsEMuGlnTg+AeI4hNR1R8IhzMVsPdwjIM7pXpHWGn17kE3kTp59xafR9CNraaa58HB+vKQdGHNtbLtEoO+hlc0EM3t2lymy8wxSIKTAOct+UcNITSH7vUy4dovlXLjwuXKHHrebFgbqY1AP07K0ufbKh6BCI9T4xHRuai2jvnYRFxaGP28GNpS2A8Xa21OouMXkDx+w56ZrZoaOxSfSrf+9NU6WAyJpQrqSY9eytD5IjCQOGESZ+SrsCgWk9kJAyf3mYDUdPPJi/uuaBXl+uYQP8VjGuBKHQ5V3h3rAr1YSxexb7jzclZgad7rtpmtgE5cIdg0GaPxXTAko0vY34gJzglV4MbgmAsymbeIiQQWdwwJaEWMa3iOTj0wGlvRRKDehDJxECjZOcFvLnKvhd8AYeWy56FKfbJXuXg1xwWNu2knDDGx18mESB666elV/6ZqKapPTYzlp7JPblBrdGYkSh6krwMI7c25v/iuaXaxtPclSupanZ/FXZXUhhMfms26lW9o+3xetCfHS7DvQkW6lphJYqfRV8nauaIJBbMfcHBcJfDzGGzRY/xPCd9vkMJ0ks R9Id9WjK qEj60hBtUhGwY7P/YZxgZK3uULvjzXM8o7FhZ8tIgnl6GJ8BkNzaL+tDXdwxbPJNW7bJ1C94q3KGZt7hzZMVkunjOsfKv2lkDyyeGYfyoV+bP62MquO1chaCAdTeydNFh4VkKPU23uArdvY/P4zNelBjrKJ6QX+bpjmHCq95IV0cpmWZddoUVVyobKeuQ/GsgFxAcOaIo7J5DsYCaudkZWQVz07yNk5xrMbOUA9eQfCM6XUbKKaRkfIZ4WdiBhinPo7LZsm1/joa28sRCd+9sQapeLJtupQwcqpuF+Uq6r3S+I37m03IWL1aMFoGr3GK6zYuTAX5jv1daFLNzMk8jI3E65g== 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: +Cc tracing maintainers On Wed, 15 Feb 2023 at 03:56, Peter Collingbourne wrote: > > On Mon, Feb 13, 2023 at 10:08 PM Marco Elver wrote: > > > > On Tue, 14 Feb 2023 at 02:21, Peter Collingbourne wrote: > > > > > > On Tue, Oct 18, 2022 at 10:17 AM wrote: > > > > > > > > From: Andrey Konovalov > > > > > > > > Switch KUnit-compatible KASAN tests from using per-task KUnit resources > > > > to console tracepoints. > > > > > > > > This allows for two things: > > > > > > > > 1. Migrating tests that trigger a KASAN report in the context of a task > > > > other than current to KUnit framework. > > > > This is implemented in the patches that follow. > > > > > > > > 2. Parsing and matching the contents of KASAN reports. > > > > This is not yet implemented. > > > > > > > > Reviewed-by: Marco Elver > > > > Signed-off-by: Andrey Konovalov > > > > > > > > --- > > > > > > > > Changed v2->v3: > > > > - Rebased onto 6.1-rc1 > > > > > > > > Changes v1->v2: > > > > - Remove kunit_kasan_status struct definition. > > > > --- > > > > lib/Kconfig.kasan | 2 +- > > > > mm/kasan/kasan.h | 8 ---- > > > > mm/kasan/kasan_test.c | 85 +++++++++++++++++++++++++++++++------------ > > > > mm/kasan/report.c | 31 ---------------- > > > > 4 files changed, 63 insertions(+), 63 deletions(-) > > > > > > > > diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan > > > > index ca09b1cf8ee9..ba5b27962c34 100644 > > > > --- a/lib/Kconfig.kasan > > > > +++ b/lib/Kconfig.kasan > > > > @@ -181,7 +181,7 @@ config KASAN_VMALLOC > > > > > > > > config KASAN_KUNIT_TEST > > > > tristate "KUnit-compatible tests of KASAN bug detection capabilities" if !KUNIT_ALL_TESTS > > > > - depends on KASAN && KUNIT > > > > + depends on KASAN && KUNIT && TRACEPOINTS > > > > > > My build script for a KASAN-enabled kernel does something like: > > > > > > make defconfig > > > scripts/config -e CONFIG_KUNIT -e CONFIG_KASAN -e CONFIG_KASAN_HW_TAGS > > > -e CONFIG_KASAN_KUNIT_TEST > > > yes '' | make syncconfig > > > > > > and after this change, the unit tests are no longer built. Should this > > > use "select TRACING" instead? > > > > I think we shouldn't select TRACING, which should only be selected by > > tracers. You'd need CONFIG_FTRACE=y. > > Doesn't CONFIG_FTRACE=y mean "function tracing", i.e. function > entry/exit tracing using compiler instrumentation? As far as I can > tell, the KASAN tests do not make use of this feature. They only use > the kernel tracepoint infrastructure to trace the "console" tracepoint > defined in include/trace/events/printk.h, which is not associated with > function entry/exit. Yes, you are right, and it's something I've wondered how to do better as well. Let's try to consult tracing maintainers on what the right approach is. > I have yet to find any evidence that TRACING ought to only be selected > by tracers. As far as I can tell, TRACING appears to be the minimal > config required in order for it to be possible to trace pre-defined > (i.e. defined with TRACE_EVENT) tracepoints, which is all that KASAN > needs. (I also tried selecting TRACEPOINTS, but this led to a number > of link failures.) If select TRACING is only used by tracers, it could > just mean that only tracers are making use of this functionality > inside the kernel. From that perspective the KASAN tests can > themselves be considered a "tracer" (albeit a very specialized one). > > If I locally revert the change to lib/Kconfig.kasan and add the > TRACING select, the KASAN tests pass when using my kernel build > script, which suggests that TRACING is all that is needed. > > > Since FTRACE is rather big, we probably also shouldn't implicitly > > select it. Instead, at least when using kunit.py tool, we could add a > > mm/kasan/.kunitconfig like: > > > > CONFIG_KUNIT=y > > CONFIG_KASAN=y > > CONFIG_KASAN_KUNIT_TEST=y > > # Additional dependencies. > > CONFIG_FTRACE=y > > > > Which mirrors the KFENCE mm/kfence/.kunitconfig. But that doesn't help > > if you want to run it with something other than KUnit tool. > > In any case, I'm not sure I'm in favor of adding yet another config > that folks need to know to enable in order to avoid silently disabling > the unit tests. Many developers will maintain their own scripts for > kernel development if the existing ones do not meet their needs. It's > possible that kunit.py will work out for me now (when I looked at it > before, it was useless for me because it only supported UML, but it > looks like it supports QEMU now), but there's no guarantee that it > will, so I might stick with my scripts for a while. > > Peter