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 6B257C61DB3 for ; Thu, 12 Jan 2023 19:58:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C992F80014; Thu, 12 Jan 2023 14:57:41 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AFF4C8001B; Thu, 12 Jan 2023 14:57:41 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4E4F080017; Thu, 12 Jan 2023 14:57:41 -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 2256880014 for ; Thu, 12 Jan 2023 14:57:41 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id EC521140E01 for ; Thu, 12 Jan 2023 19:57:40 +0000 (UTC) X-FDA: 80347207080.25.78354E4 Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) by imf20.hostedemail.com (Postfix) with ESMTP id E86751C0003 for ; Thu, 12 Jan 2023 19:57:38 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=infradead.org header.s=desiato.20200630 header.b=Zvs6hw3d; dmarc=none; spf=none (imf20.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.92.199) smtp.mailfrom=peterz@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1673553459; 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: references:references:dkim-signature; bh=dY+sZF8zXVTImEusizdFam+mvD2uBaZ1sCttd0zpvx8=; b=KescUTOZGRcAUrzoiBti5ctRg8svYZtaQG3wal3O5UVzKXt6lhAZGPP58RH6R43kyXP8IZ xTqvE2+JbLXX9/phn9JblCVVpgfaUOY4GCiV/3sdUkkIvEHU9KX/v6403I7HywFY7gFsNV 7fzKfMPMFrxO7wco93HYVv8xippdn80= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=infradead.org header.s=desiato.20200630 header.b=Zvs6hw3d; dmarc=none; spf=none (imf20.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.92.199) smtp.mailfrom=peterz@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1673553459; a=rsa-sha256; cv=none; b=CC3y3To0jBeOm70Vh9QA1GWeFXCflN5QrBJ+NNiAOYj3yExjQxk96lV9wPA/WpPgaHO0qq +QZiqrhce8ICxv/ol8SuBWAnK2/0iYe8LpzUFi2TuKchA3FtUB41CIzxWpjx6IDO4As/MB v963vtXHgbixivb0tZf9HTvAVv4Jf5o= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Type:MIME-Version:References: Subject:Cc:To:From:Date:Message-ID:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:In-Reply-To; bh=dY+sZF8zXVTImEusizdFam+mvD2uBaZ1sCttd0zpvx8=; b=Zvs6hw3dC5vZ9/e3RVPulXa4vo 0LGVycD5ek8na8AFjgsGQDoJWr/GILDhDZZRLr5jcFSKcCvqgSV1b0VFMw8bgB2ismeu3VWWkJ8fT iOKXjPhSfP3BdrVt2KEx/AK1uUamJSxIAfVV8e3ZVtl5XXXBjts18yo5G52OU+rSmciaSR1qJTQOp jrcY4VRNY3AgQZacZ+/mcgJwzOUsYcfiXdjCWRnrFGw8rdAFr9f26ET+gY1q1gut10GpU+iYN1B13 B3mDdBlf4EOS02q8DY62DSvt/0WRC0IcizLnoP75ZxAWdBkF7dWM1rEkjziDX2zFcPQkr7kw9pR2z NdL9gE2Q==; Received: from j130084.upc-j.chello.nl ([24.132.130.84] helo=noisy.programming.kicks-ass.net) by desiato.infradead.org with esmtpsa (Exim 4.96 #2 (Red Hat Linux)) id 1pG3hJ-0045pY-0x; Thu, 12 Jan 2023 19:57:21 +0000 Received: from hirez.programming.kicks-ass.net (hirez.programming.kicks-ass.net [192.168.1.225]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by noisy.programming.kicks-ass.net (Postfix) with ESMTPS id CAC91303456; Thu, 12 Jan 2023 20:57:13 +0100 (CET) Received: by hirez.programming.kicks-ass.net (Postfix, from userid 0) id 3A2002CCF62BF; Thu, 12 Jan 2023 20:57:08 +0100 (CET) Message-ID: <20230112195541.477416709@infradead.org> User-Agent: quilt/0.66 Date: Thu, 12 Jan 2023 20:43:49 +0100 From: Peter Zijlstra To: peterz@infradead.org Cc: richard.henderson@linaro.org, ink@jurassic.park.msu.ru, mattst88@gmail.com, vgupta@kernel.org, linux@armlinux.org.uk, nsekhar@ti.com, brgl@bgdev.pl, ulli.kroll@googlemail.com, linus.walleij@linaro.org, shawnguo@kernel.org, Sascha Hauer , kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, tony@atomide.com, khilman@kernel.org, krzysztof.kozlowski@linaro.org, alim.akhtar@samsung.com, catalin.marinas@arm.com, will@kernel.org, guoren@kernel.org, bcain@quicinc.com, chenhuacai@kernel.org, kernel@xen0n.name, geert@linux-m68k.org, sammy@sammy.net, monstr@monstr.eu, tsbogend@alpha.franken.de, dinguyen@kernel.org, jonas@southpole.se, stefan.kristiansson@saunalahti.fi, shorne@gmail.com, James.Bottomley@HansenPartnership.com, deller@gmx.de, mpe@ellerman.id.au, npiggin@gmail.com, christophe.leroy@csgroup.eu, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, ysato@users.sourceforge.jp, dalias@libc.org, davem@davemloft.net, richard@nod.at, anton.ivanov@cambridgegreys.com, johannes@sipsolutions.net, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org, mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org, namhyung@kernel.org, jgross@suse.com, srivatsa@csail.mit.edu, amakhalov@vmware.com, pv-drivers@vmware.com, boris.ostrovsky@oracle.com, chris@zankel.net, jcmvbkbc@gmail.com, rafael@kernel.org, lenb@kernel.org, pavel@ucw.cz, gregkh@linuxfoundation.org, mturquette@baylibre.com, sboyd@kernel.org, daniel.lezcano@linaro.org, lpieralisi@kernel.org, sudeep.holla@arm.com, agross@kernel.org, andersson@kernel.org, konrad.dybcio@linaro.org, anup@brainfault.org, thierry.reding@gmail.com, jonathanh@nvidia.com, jacob.jun.pan@linux.intel.com, atishp@atishpatra.org, Arnd Bergmann , yury.norov@gmail.com, andriy.shevchenko@linux.intel.com, linux@rasmusvillemoes.dk, dennis@kernel.org, tj@kernel.org, cl@linux.com, rostedt@goodmis.org, mhiramat@kernel.org, frederic@kernel.org, paulmck@kernel.org, pmladek@suse.com, senozhatsky@chromium.org, john.ogness@linutronix.de, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, bristot@redhat.com, vschneid@redhat.com, ryabinin.a.a@gmail.com, glider@google.com, andreyknvl@gmail.com, dvyukov@google.com, vincenzo.frascino@arm.com, Andrew Morton , jpoimboe@kernel.org, linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org, linux-snps-arc@lists.infradead.org, linux-omap@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org, loongarch@lists.linux.dev, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, openrisc@lists.librecores.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, linux-perf-users@vger.kernel.org, virtualization@lists.linux-foundation.org, linux-xtensa@linux-xtensa.org, linux-acpi@vger.kernel.org, linux-pm@vger.kernel.org, linux-clk@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-tegra@vger.kernel.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-trace-kernel@vger.kernel.org, kasan-dev@googlegroups.com Subject: [PATCH v3 35/51] trace,hardirq: No moar _rcuidle() tracing References: <20230112194314.845371875@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: E86751C0003 X-Stat-Signature: zm4kjid6x69ko8s4pu7ezkpsfdjxowy4 X-HE-Tag: 1673553458-765721 X-HE-Meta: U2FsdGVkX1/A/YLWK0Ra0qWzV3q49wv6XAeMcT8sLBxjFr7kjiUzOiUVj836hgpCMm0msVzkOfIbF6K8EwEjzN/8fuE9ASU4fk2WZ2qALuDNryeRZTmeXKhW0ACik/XV71n8AJgqY84mTs/F2HtGPOx4td5rSqj2u7dQGXI4l5AhtGRSkOl8bjn0jb9qJQK/ds4qnCfSss3fmOO1HTLQLeJdv2CG3YB0MsttOKXVObBtuqxVurVLiwgEWLzVGgBMReZWss/5zFjubNeGu8taHULmd3xxW7qQJxls57qriD0KwrHkB1sZBmpnw5k+T+ZVt3Xw9LwK8HrP9zPfMJzvmbccxZw2v0SqProOXIHjjXfb6dYYP4wCyUxtsejiGU5ToXHBfytXVu6rUoNLiq4OOyOxrKWAc9i3+0x4YJBLvabDBavv35SgjVzKZcH+CksXMZicCE+fZBo9au+e86UL2fvzl+MM6Q/+qffpj8qQf2R2ULU/yJ0RhRf6CYucWwoOaZ0h7TQsvmeudiON868jKho2V+FDDO7ch1Z1PR2fil/mnoR7FfYNdsW5i/rL9ityeaA/2VkEL9eq3cB+jG3U1rRba3kAbSS2XKb2jmJ63uShLJLbKHZwOs8Y68wUsny+EV3fNdG5YgOi+vnf+BLurfjuRrBC0CVRBHvmomz5mFH9eIWTBd+40mByec3D3n7Yn0Ping/h87mYeVHmr5EmXXKfdNvBSWFCLB6lItiBJCAJLh0WJMCfL0lpDeHJs3oCTmU9sfR/ovVpyOWXFxglD5J5dNe5iX1zTob3bCvtDVC15MQib00y30tK9p++/vIPD4H8P5Sytxt4gbruJnpuNFm4WBXGvoHbiblD8zRMR9jp8D2QkBqKAU54S8E2oOziiHDMrKiPzDuhMIZUBxZAYp4vCRtWYfTW4YvKxDdYV69RTmpRkPFinvODogb3Ws4eihzUOi0HKol/tXvXTAw kSEYIFF1 nGntNiOex7bR2v9WnD9683MDzkmvRfoSXeNSkYOo3YRroZKEnQVFbSYg+tvCW8QMFIBk2/YUMMdJk/85ck3FveMUzuNH46q+1LPnAx1tyF5GjO/Qc31Np/HpXz6XvM9+qFkiGsdItvCfNTkK7y5aot3UDjBkdG4LHkzFGWIOKJkL/d1xZ6fsYI9ExvqRywQWpRhwzn7qKfGilApoqITtU1K8f3XYWWcJMPH248KFypstZxHIlvZXURqLGtDdfH6doWKVw9uy4C1NfkoPUWSeZrNN6OJ8NtoaCCf39M2xuPWLa7lVPlso5Vl4KnPwp/HbrDezMsPQsNrytANWsN26M48LFTjnZ5CuAJhWrR6PATtCND6CzbI3Bii4B7EX8E9qtiJEugCMnWXMeTLJL01q9PZvO/cnT/RItpBuD23Lqy1jnddqD7yIOUwuOBLxzKSScZywbuaebCYcT6eXGoedVtsP+n1c9Big8ZyXeyBibOdOzLM1S/St72fjCL6BsUE+N6gY5buiMc/LjzUV8H0Z6v6LGdNYDvPaM6oBrF9Kix/gqQw2cmuKjGkxzA8sqIadO/ovjkj0/Dv3D2YPY0jLLjPd9IZdV/kStEMl7z3okAR4lt/q/KcOR/sStoWmq4aR1yxeaWpI8sF7ExxIIfrCIm74kkxXBeydzS6gRdmK5PhJWSIACxlSpjaiIBCyX2qDa0Kw19wMckkdmsmyl+yF/6Bq+w+EXY73wBFEHyNj06kORptGj5/AhNca1aFEESc7M9h0ZCcCMXnyELPMYTj29rBny5e9YJ9iTkGB0RvVttUUQzc29gX4rhb1RfBoDQoFcFIxbuQd5afVKdXPyn9c4EhkxQ4QgFTt+goSfdYeyD4LmJgy9kz7tj6ud8KY+URY2O7XfXO9tP5rosgJy5BCKmqSLQf23kUY90hT5fXkR6fOKdWd7m8QiZaX4f8O7gjjxcNaCnczXCtbm7Z8y9rJZyUJkBVVr HOm3bfvK Iu27M/KJJRs1jaJMgPkrELZV0jQrFjNNAmohJQskPk5remnZI2+ToMhnG1IXOhlGdK7pfaYp/qoYThBP+ugOM+ZgHy8T30dQbo/O/obt9BqyGkdqG5wY4J3qII357LSgzqTz5gLzBDRQjx8Z5QwqYyM4BMk7j3KsUyGlNjK2zZiWM8dxTdKXhqHBdM64s/+tOi4+PWOqZ3y2pyxw95Ovx6zk/Szd66l8NP4NVw8YI45l8Ygsg9RwgGlN1ViLK6DOavFc1EGhPHDi5kmx8ZPgVVCLIt9oBMrLEsvfSG9FM+r2+QNYfJ9DUTPchooUSX9V8AT7jgZZcKpo7wXX7NlyrgTLU29Iwp2iOCvql9BUOFMpf+9txP6U/2W1gez4tGABb74HwHMHuFaAMoGcfSoP9f1NaPR8Stgo0i6njQgR4A3irP7mOG3jTVrg0IZMU3QFg4vsWAEGPrhtHVWHyqQsGwJmE0yMmsojV+2lQkRvVFQ96N+Th/VKDZd+faRO6ZJqwazl+zuSmPZfJLlT8NJtgfp6JitCX3Qcnkw8lwSMqWItZI19xfxgPgPgY+6UyN8cr3ZPiDO1hQbofgTMoFTxPVZEjpWLvPpZtMQWXiQlKbfW3/7DtNW8gccj54dIbyWc5g0kHvJ2qghqZDOcKTOtqswJV7SUrL82KzRC9Gok+e46uUFVNrMC3nXtRc98helCOlrgWkKwmyud0N5bL9ceCKYWOCxYrkLauEzEiKEhoTfxtGZ51m/0rHWiXC6wAzpFISikQOGLQGek2IrAES5KtQByvfBsil6nvANE69CWX+Sevb0uPmFB1gbXbCM/kKYnHq6QQjrN6hCj7gRt9dx1d2oFWLr80HLdrBFCKSWWO2knVib/2JpFqMtAeo8d0FSfUZ5f5NApLSisH0fsWtmxldjPiQNIge7uX8fFvkGAtNxYdNxi7zzC2RlpkodHsRoQIlMjeucFN1coDSXlQ1s2MpUNQlK2S WKq5/m5D FG9YyuTIVNCCc4O9qhCvWKrz7g7h3njCQ2A/lFPcL9VL2cCQqTOHWL+goVQHeSP5hGjkAsx+gPOBLjG5zC/GwA6ZJJO98YwmUHYBk5eScWy596wsHm8xPGnRA9iWnd8KaYYhd2iW7dCCY3jUrELvh04Xfj5FQPGnmWrgDP6QpFlsca/NcdjCKQVaxFIcb7VDQkqy608s03RzV2oJsnM96ZHvQJdUV/2qEAokCXE04yfp9Zz1+hObaN6+nlsyctVt2iGTFAS5dMpAzYUSqvF5umtLXXvmLtsB0xE5najePfn8h8F4GnuoiPvIGiAZdlZULSAwJ1cC9Z10YBpZA1VFFqJx5VAVuoGzgMrtNZTEdQdTPVOXHWPjyuS5V2ZSjMeyqyuOndGQIc714zr6QKvQSE4c6JMPrar3A274VctCJb4PBnnvQVEeMxeICLKIfl0LSqwMn0ZlS1XSBdyEizRAdCMoRxVSDUs35hFZwmgaKhepKZP4TFGI6TYBAXU7NPQv7LRgbMsTm+muzTLW6DlAKAB/a3RLK3dsvSZ75FV9Sl4w/7hHnpovqmrwCvZ8O0MsYgDnnfDcHxEQfAtWi0FOkSne6nulf8kcFSQzYO8y/OAOkmHIPes6QxME9XPF6S1x/4kGmRj21C7mvwmyVtAl4yqRgQxbj6nvqiIEQ6GLi8VwYs0X7fnie86OBxqc+6uqRIxWwSMmKBSjSvArY+wq8WAJWqAAG5gzT10Gt2/YcsWMvyOwUcTdkys241FiaTdWzWZcS8+6GDCMmBPBJX3ofyxJhT1qP/P/JXXDOq0mkvHCi8EAW9pmDPu1U+fY6jrewbkA6rQuO6rx39mmA5mfSa0AIcrxZHBT755WycXZu9Ag+deZtG4Wv4NzAUEMl/lmkpZVFMVD+f4BDOyOgprE3kuY3qBOwBUY/riyzaBFohSjJSJhypAL37NS9RbHWRZk6ecwblmntS6VYVhACSSyzzijsQgcZ Q5L2oShC sjv51/R63hW+VrHe71uMj1msqTscRmK6u8XdmhzEMCih6rlmbFDRvE4mBCjxR+H7Tkqzx0CXx9S+SGpMDydU2aFOv2bYZxMUwvlajqIqZtRxpA1xNDa/jBBGyCa473K8IITuWmKDXVeB0+Ea7OX+Eb 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: Robot reported that trace_hardirqs_{on,off}() tickle the forbidden _rcuidle() tracepoint through local_irq_{en,dis}able(). For 'sane' configs, these calls will only happen with RCU enabled and as such can use the regular tracepoint. This also means it's possible to trace them from NMI context again. Signed-off-by: Peter Zijlstra (Intel) --- kernel/trace/trace_preemptirq.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) --- a/kernel/trace/trace_preemptirq.c +++ b/kernel/trace/trace_preemptirq.c @@ -20,6 +20,15 @@ static DEFINE_PER_CPU(int, tracing_irq_cpu); /* + * ... + */ +#ifdef CONFIG_ARCH_WANTS_NO_INSTR +#define trace(point) trace_##point +#else +#define trace(point) if (!in_nmi()) trace_##point##_rcuidle +#endif + +/* * Like trace_hardirqs_on() but without the lockdep invocation. This is * used in the low level entry code where the ordering vs. RCU is important * and lockdep uses a staged approach which splits the lockdep hardirq @@ -28,8 +37,7 @@ static DEFINE_PER_CPU(int, tracing_irq_c void trace_hardirqs_on_prepare(void) { if (this_cpu_read(tracing_irq_cpu)) { - if (!in_nmi()) - trace_irq_enable(CALLER_ADDR0, CALLER_ADDR1); + trace(irq_enable)(CALLER_ADDR0, CALLER_ADDR1); tracer_hardirqs_on(CALLER_ADDR0, CALLER_ADDR1); this_cpu_write(tracing_irq_cpu, 0); } @@ -40,8 +48,7 @@ NOKPROBE_SYMBOL(trace_hardirqs_on_prepar void trace_hardirqs_on(void) { if (this_cpu_read(tracing_irq_cpu)) { - if (!in_nmi()) - trace_irq_enable_rcuidle(CALLER_ADDR0, CALLER_ADDR1); + trace(irq_enable)(CALLER_ADDR0, CALLER_ADDR1); tracer_hardirqs_on(CALLER_ADDR0, CALLER_ADDR1); this_cpu_write(tracing_irq_cpu, 0); } @@ -63,8 +70,7 @@ void trace_hardirqs_off_finish(void) if (!this_cpu_read(tracing_irq_cpu)) { this_cpu_write(tracing_irq_cpu, 1); tracer_hardirqs_off(CALLER_ADDR0, CALLER_ADDR1); - if (!in_nmi()) - trace_irq_disable(CALLER_ADDR0, CALLER_ADDR1); + trace(irq_disable)(CALLER_ADDR0, CALLER_ADDR1); } } @@ -78,8 +84,7 @@ void trace_hardirqs_off(void) if (!this_cpu_read(tracing_irq_cpu)) { this_cpu_write(tracing_irq_cpu, 1); tracer_hardirqs_off(CALLER_ADDR0, CALLER_ADDR1); - if (!in_nmi()) - trace_irq_disable_rcuidle(CALLER_ADDR0, CALLER_ADDR1); + trace(irq_disable)(CALLER_ADDR0, CALLER_ADDR1); } } EXPORT_SYMBOL(trace_hardirqs_off);