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 93C87C61DA4 for ; Wed, 15 Feb 2023 02:56:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D82556B0072; Tue, 14 Feb 2023 21:56:06 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D31D16B0073; Tue, 14 Feb 2023 21:56:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C210F6B0074; Tue, 14 Feb 2023 21:56:06 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id B1B7E6B0072 for ; Tue, 14 Feb 2023 21:56:06 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 7CDA0AB7EB for ; Wed, 15 Feb 2023 02:56:06 +0000 (UTC) X-FDA: 80468011932.09.E0A48BF Received: from mail-il1-f182.google.com (mail-il1-f182.google.com [209.85.166.182]) by imf20.hostedemail.com (Postfix) with ESMTP id C46F71C0008 for ; Wed, 15 Feb 2023 02:56:04 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b="A42/UHca"; spf=pass (imf20.hostedemail.com: domain of pcc@google.com designates 209.85.166.182 as permitted sender) smtp.mailfrom=pcc@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=1676429764; 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=AMRBoKkOIVB/WviH4IgQy3fBGZ0k4cThtcao32eLZ1A=; b=b+WcuiKb6n0rOAhYLP5z4QS0lWRn17SF4O4rNt70SSEgmJZfy+FycvgydsyWqL9/AukmdB o9h/4kiiJB24NBa7M+ViX5ZTROWIrWhp18V0lIGDOfUMg8qV4+moviOam27DWk+KJTOFDa 26nVq4ropN9wVM/knBCMEVdoPe78yew= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b="A42/UHca"; spf=pass (imf20.hostedemail.com: domain of pcc@google.com designates 209.85.166.182 as permitted sender) smtp.mailfrom=pcc@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676429764; a=rsa-sha256; cv=none; b=ES47jt9fKjO4uxamQURVPzBuHCA+8GMy2+tAPgH05sbw4FwctgQZkn91knO9jWHlIp7LPM +5CK0afDcY2L55/pP1SGNz1hVXQqaDZUFndJ3T7Aoe0+IYDgfN/rzQ+IPCIoQZ88Zz9eur O48FNNeMhkVMom5Ujyhf3P424AyP8P4= Received: by mail-il1-f182.google.com with SMTP id u8so7044829ilq.13 for ; Tue, 14 Feb 2023 18:56:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=AMRBoKkOIVB/WviH4IgQy3fBGZ0k4cThtcao32eLZ1A=; b=A42/UHcaUhHPECfMYj5xgYJtsyhU4ROtGUkJy2oFLsEYPH+s90qmrG/FRdIJC+dlWM 48jVLQLFVG/R7lad6zuuNJkOExrByeoic6UAtbNPT6kwK6OACS01t6ld+rJ0Ze2ECL+a VbfBNc21x39cruzKn5ZEZUePdJa++g7QXKGmIXViWWvbwggtHgAWZcFNmbusCgTj4gsk R4lKlJob+E4p2WBi/BaCQVQ8r3Y1yRpnZH5xlUrs++vKPik3cxMWXOXme3MQ+T28C6JR 6qomFUwjduRyT6EcYM+Cg2ArIVXRFrl9SsQk6Rb+RWNjTWpo/780wou34iawXzbKMQC1 O5fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=AMRBoKkOIVB/WviH4IgQy3fBGZ0k4cThtcao32eLZ1A=; b=v3Dhu6DZ8K7DTgsOOv4kEYZTRWMHLpUnKF02hvb8SP1bvGKBtAjvpsy1NLG8FHXTnJ y8qbj1c5TgKB7aRwo7V+NoZE3DJZ+Lzx0glH+npSSOWO4E4Z4LLmAPUHP37A6uDrSOBy R7LCv8M8kWmQGVNCE+obMSXEVGt0mrPkJfTFFavRgz9pMQvXwg/HfK3VQPl6QCQS+JWj ySFS2j9dFnJUQEDxQq+EiB6FSIHHyGr2ZwnCpf97n5O1gA9KCKD4S4xUGVCcZloREVuy bjf2soFFxCfj5O8mPrqX7Jw/BFZ5nxHcfc0mYEqe8ivoYXwG8qpBP9f/HvaB7UgziURT lVPw== X-Gm-Message-State: AO0yUKUmiwtPI7EZW7UZQhNImYKEqg3YepDRyduYedAW173j46nOOsT6 PH9dc5rkIoCMjyDb6n4HleyF9vBRPfFzeulO3P+PpA== X-Google-Smtp-Source: AK7set8FGsHT0Rx9AJqcFaozjnLIXwCSODu3xXgw8RpWVwuU4EfG5MEbrWWU3xDNgpPxVioaX3AcAdcmB0SIRtlFY1w= X-Received: by 2002:a92:8e04:0:b0:310:9d77:6063 with SMTP id c4-20020a928e04000000b003109d776063mr267413ild.5.1676429763604; Tue, 14 Feb 2023 18:56:03 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Peter Collingbourne Date: Tue, 14 Feb 2023 18:55:52 -0800 Message-ID: Subject: Re: [PATCH v3 1/3] kasan: switch kunit tests to console tracepoints To: Marco Elver 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 Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: ja93a355yg7uniwp7jsj9n1xwzg8ra5t X-Rspam-User: X-Rspamd-Queue-Id: C46F71C0008 X-Rspamd-Server: rspam06 X-HE-Tag: 1676429764-115283 X-HE-Meta: U2FsdGVkX1/v4uq1adKRDOxcUOWMUYpoGS9HnVFw7Y6lRzBG6Xi5LYRA7K8ImqjIVjwMEDucKFaFY8+PtSmTDZb1T3r4uQFpjr+c+Ly5uyXpswCTMrI5u815KmLNIpX9LrnASZoUz8Q5QpM5wxgTaajD4Gv5LzQ87D2TdG4siP1O/hyeb/tzU0YkbtMu1XyvcAPMFD+TFWgOgA8VWPFmMMpUrkmwZcq9GZzXnG5+ENfZ97+mEhnhxYgjSS71J2P0PZEcNwjVTcyNi5k6VQTNQIgdw7S1j+ydu72XEBH9CPMKlJJ9h2jAaTDrfVAPd6bUVeEjOeHWUP4I9OVBnfoDtE/f+UYIv4d0ZkSWw1aeuvVQTLu6VToTwEm24rLWV4uXCGQBIzotYd6MHwysHOKdAz8J+4OWZy9xm5awFZZq43GXspdqXZNxUdkT6P4YPvIjqUejte2L6GxIo272XcaCC6+5XS4WaFpWpVSILNsp+ONftKn8DVdML8QE+R00omWGNpI3YeDkAtOnL47SLAhpbXOdXxgXBYjsjESV2YrpZO8EMou+SITEtElFaf048WwsGFzrsJWchaJgc8JRmH237tBytqZBEhYvyRJvcOd9LnVOqZOIpaibU+bdblN7pw/myC26u/xN2i+TRlTAkGESNnxFWtaVUqcYwaNxPjBQTrL6WuTi7TFawnvieBo3Vtz3c5tCVdalqAzXfbgYAYibJID6DBrhaUj0obD/QyWu2xp18nBAN+zzK2wyII9/AlLx+BLX8Luq/tcwB+Ndciwi5MImcEQZM7nYXo9gfBKoKZ0rheVbT/ayEInP6J8IwOgXatOMwtfqEidfUVbaJhG1tj4CB1bbSK6iDGjQh2cUC2C5AQoHcIIaHaZtWEBVa70f/m5PUTbJy9KJ6XLcMS9aWSlUTvSDQcjBaXmmZ3pAM/w/hJnSfuQCydOCmzu2fQPb6bVReK4wWTnQWtwSPmw HwiziUtX 9qxaFsn9cZUHOdk1ZEjmiKuJznGdF+c7frQnWJVKx7JJzVu/Td16+VHsJQzN6gvqxC5uoY5kM07FZSHLRu8W54AKEYqcYXWY0YSDAHxZDl5CZTeBTObQnBNhNvbtpurKBgDRQw5cfsRFjInzdLb8kElIa8Je9CmryeocVWzbIq5doKkNd640jzBaRMjBzb4b9TNpzS+i0R22BCBS9tKG0rIh86CWSvdNgrGrRI6OCrz5jhjdmPQrgvsOAw4bSmuwhMsx43bZsjMKTKosLpUK/lUEOMijq6LMugrd+jXAMSc+naSQDEKHtd92qc+I8om/01dwv9R0iDP62m+0WaajVUm+STA== 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: 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. 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