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 082C6E784B3 for ; Mon, 2 Oct 2023 14:14:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 422336B0141; Mon, 2 Oct 2023 10:14:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3AB406B0142; Mon, 2 Oct 2023 10:14:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 24B5D6B0143; Mon, 2 Oct 2023 10:14:19 -0400 (EDT) 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 122E36B0141 for ; Mon, 2 Oct 2023 10:14:19 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id C272D1402F0 for ; Mon, 2 Oct 2023 14:14:18 +0000 (UTC) X-FDA: 81300716196.01.E3BD8C1 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf26.hostedemail.com (Postfix) with ESMTP id E822C14001D for ; Mon, 2 Oct 2023 14:14:16 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf26.hostedemail.com: domain of "SRS0=K9Rp=FQ=goodmis.org=rostedt@kernel.org" designates 145.40.68.75 as permitted sender) smtp.mailfrom="SRS0=K9Rp=FQ=goodmis.org=rostedt@kernel.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1696256057; 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; bh=r5jDPnQEkQR8/RzF14rOTh54Zk1HLBP+qiPt79K/Q+M=; b=R+071Pt7pAsbd5mMnVBvd3IWyrdQTuKnB7Ba3YxiXTDFCbFyhr0VVu5E27J23L8RFfImH1 YVqkF7zC9Ju3m8TukRzlBiWpWwkwxfJb2KHVuUNL0dpDZsEBK1JriLvdAhJDN6Iun5rEzB o4cm3ePstD+wRVwcHUFqpgu4bkvBWNY= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf26.hostedemail.com: domain of "SRS0=K9Rp=FQ=goodmis.org=rostedt@kernel.org" designates 145.40.68.75 as permitted sender) smtp.mailfrom="SRS0=K9Rp=FQ=goodmis.org=rostedt@kernel.org" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696256057; a=rsa-sha256; cv=none; b=7AxStN79A44aLfp4qFYWruemRF7FPIRIuBgvpds9jR8Tl1WBJrAmkJZF037UhHigyb3TBe NfDNnZky7NRLjaKbEtY5TIqofnzigOXfnYI5E9gwf3NdrFq1bVQr/l9AVjayTeS0zPRwEV C/OvWLdB8kBItnkuOiNWEQrAk4A/xmI= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by ams.source.kernel.org (Postfix) with ESMTP id A5367B80E8D; Mon, 2 Oct 2023 14:14:14 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6DAD8C433C8; Mon, 2 Oct 2023 14:14:11 +0000 (UTC) Date: Mon, 2 Oct 2023 10:15:14 -0400 From: Steven Rostedt To: Thomas Gleixner Cc: Linus Torvalds , Peter Zijlstra , Ankur Arora , linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org, akpm@linux-foundation.org, luto@kernel.org, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, juri.lelli@redhat.com, vincent.guittot@linaro.org, willy@infradead.org, mgorman@suse.de, jon.grimm@amd.com, bharata@amd.com, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com, jgross@suse.com, andrew.cooper3@citrix.com, Frederic Weisbecker Subject: Re: [PATCH v2 7/9] sched: define TIF_ALLOW_RESCHED Message-ID: <20231002101514.44b9c812@gandalf.local.home> In-Reply-To: <87jzshhexi.ffs@tglx> References: <87ttrngmq0.ffs@tglx> <87jzshhexi.ffs@tglx> X-Mailer: Claws Mail 3.19.1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: E822C14001D X-Stat-Signature: r7qsxxjrstszwocx1sxbagybcpu8zsjk X-Rspam-User: X-HE-Tag: 1696256056-551694 X-HE-Meta: U2FsdGVkX1/GnaBSrUL/7h5lawZ7q0QwfYg5CM24EDYUa10SqxrT4K9Iz/FufzqYpWOL+F+oNbEQDS5sT0BcRv6s/Qtq4Cfz5m+48onRw4YZLHsiauOXqIA4lanwK+olokhLR7xW6bokxYnkw4sGGskG03PRZiD9ylPJoiIHuJ/LBU+fZENa1VPjcWocUHpsLDiZUp+/ZK5w5vXt4USkmsO5W6NGmhHexLLs/+x0tkMdRGJ6Gef+wkOu8DpfLNg5RFp/MiVsJSXqj65fG+ps8HlZE7T/4UmkN2uoj14vdAc3HJ/ZBsSr7yAmI/HasmTDvRQ3gg7ilp0/qqzosAWYoM6GuPjgSxs1iSZ5LVOQtB8ZxL8swbTSftRgiKZGBQajonRuxuuYNKB54vpGmFf8cbULejyNuSORXZgYOo0VJ4G662OMZ7iWdQDgCB55Z2vOdlhqtnhvJtlbGUfz+pnRg3gVi66anKs+fUWlv3I0nhU9MNQrzlvLbE2g/BjBhQUmoHrMslJMsgOhcTlBiAVvzAmlNx8UmKPH6xsTSkpvuCq1yYi1nfpftGRHXuOSWPE0/0CoF6b0sTaZpONOYwQRgv2lSLMbH6kxnLM+P/t81uiqR0Ikzedx8EsjPXa+RrP1xMCVV225DCMdKao4u6+AsRV349PO8llHPA0JF1pJlc3Eu+eZkaBaOvgUHZ24NI0nl52G9ymEtTWj5byk1oPrnkPRVB08yNIeMqEQF4B88XBfqhDYeRL8H0CKTe2zynZJ8NpNnbUMO6zLEhbxLdCo8UlbHM5gLhiZWDU6cgRpVz46YK3BKGGE4200cGhGX7Aux+52vVrmOl2z7T8R3QlbRSzl+hJbZEI5CuRig1aKrMKyTprgKqDvQx20FXP/S6CPh4HMJKzhzQHNNzTtIQjLC2HXIlXWu4tD23a6szq4Q7asiytmNXVRXE1U3TG/n/a3dLH8ktk9DsRG6HK7oMz /iiNuPOo SDziCkEYDUzSrbHaD94umINpFSv8MxKLrSHDp3clrDtxIWdLlWLtc1Q5hsMABBrAjZjs5J7TPz199Lj5FQl6xGqcr2RoyT8TBVs+nqijvG18PSs/VdKgHSJtZRWiasr/s9m+P+bnCh4+xQaPBCaP+EBkn/9hMi7ZwuF8ahYDpkZ6aIyEHP7hWi8xlgJvj2KrJq21Rpn7mY7532czwO8mj0QHI4pZIg6aKclWWy5S8e0QLabbGLRLVcrFubAQI1wIKBx6dJseHXHuELH9GkBLNJtFUcjzW4q2m/GECoe+70e6OFrJbDSdq3h7gkw== 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 Sat, 23 Sep 2023 03:11:05 +0200 Thomas Gleixner wrote: > Though definitely I'm putting a permanent NAK in place for any attempts > to duct tape the preempt=NONE model any further by sprinkling more > cond*() and whatever warts around. Well, until we have this fix in, we will still need to sprinkle those around when they are triggering watchdog timeouts. I just had to add one recently due to a timeout report :-( > --- a/kernel/trace/trace.c > +++ b/kernel/trace/trace.c > @@ -2722,6 +2722,8 @@ unsigned int tracing_gen_ctx_irq_test(un > > if (tif_need_resched()) > trace_flags |= TRACE_FLAG_NEED_RESCHED; > + if (tif_need_resched_lazy()) > + trace_flags |= TRACE_FLAG_NEED_RESCHED_LAZY; > if (test_preempt_need_resched()) > trace_flags |= TRACE_FLAG_PREEMPT_RESCHED; > return (trace_flags << 16) | (min_t(unsigned int, pc & 0xff, 0xf)) | > --- a/include/linux/trace_events.h > +++ b/include/linux/trace_events.h > @@ -178,8 +178,8 @@ unsigned int tracing_gen_ctx_irq_test(un > > enum trace_flag_type { > TRACE_FLAG_IRQS_OFF = 0x01, > - TRACE_FLAG_IRQS_NOSUPPORT = 0x02, I never cared for that NOSUPPORT flag. It's from 2008 and only used by archs that do not support irq tracing (aka lockdep). I'm fine with dropping it and just updating the user space libraries (which will no longer see it not supported, but that's fine with me). > - TRACE_FLAG_NEED_RESCHED = 0x04, > + TRACE_FLAG_NEED_RESCHED = 0x02, > + TRACE_FLAG_NEED_RESCHED_LAZY = 0x04, Is LAZY only used for PREEMPT_NONE? Or do we use it for CONFIG_PREEMPT? Because, NEED_RESCHED is known, and moving that to bit 2 will break user space. Having LAZY replace the IRQS_NOSUPPORT will cause the least "breakage". -- Steve > TRACE_FLAG_HARDIRQ = 0x08, > TRACE_FLAG_SOFTIRQ = 0x10, > TRACE_FLAG_PREEMPT_RESCHED = 0x20, > @@ -205,11 +205,11 @@ static inline unsigned int tracing_gen_c > > static inline unsigned int tracing_gen_ctx_flags(unsigned long irqflags) > { > - return tracing_gen_ctx_irq_test(TRACE_FLAG_IRQS_NOSUPPORT); > + return tracing_gen_ctx_irq_test(0); > } > static inline unsigned int tracing_gen_ctx(void) > { > - return tracing_gen_ctx_irq_test(TRACE_FLAG_IRQS_NOSUPPORT); > + return tracing_gen_ctx_irq_test(0); > } > #endif > > --- a/kernel/trace/trace_output.c > +++ b/kernel/trace/trace_output.c > @@ -460,17 +460,29 @@ int trace_print_lat_fmt(struct trace_seq > (entry->flags & TRACE_FLAG_IRQS_OFF && bh_off) ? 'D' : > (entry->flags & TRACE_FLAG_IRQS_OFF) ? 'd' : > bh_off ? 'b' : > - (entry->flags & TRACE_FLAG_IRQS_NOSUPPORT) ? 'X' : > + !IS_ENABLED(CONFIG_TRACE_IRQFLAGS_SUPPORT) ? 'X' : > '.'; > > - switch (entry->flags & (TRACE_FLAG_NEED_RESCHED | > + switch (entry->flags & (TRACE_FLAG_NEED_RESCHED | TRACE_FLAG_NEED_RESCHED_LAZY | > TRACE_FLAG_PREEMPT_RESCHED)) { > + case TRACE_FLAG_NEED_RESCHED | TRACE_FLAG_NEED_RESCHED_LAZY | TRACE_FLAG_PREEMPT_RESCHED: > + need_resched = 'B'; > + break; > case TRACE_FLAG_NEED_RESCHED | TRACE_FLAG_PREEMPT_RESCHED: > need_resched = 'N'; > break; > + case TRACE_FLAG_NEED_RESCHED_LAZY | TRACE_FLAG_PREEMPT_RESCHED: > + need_resched = 'L'; > + break; > + case TRACE_FLAG_NEED_RESCHED | TRACE_FLAG_NEED_RESCHED_LAZY: > + need_resched = 'b'; > + break; > case TRACE_FLAG_NEED_RESCHED: > need_resched = 'n'; > break; > + case TRACE_FLAG_NEED_RESCHED_LAZY: > + need_resched = 'l'; > + break; > case TRACE_FLAG_PREEMPT_RESCHED: > need_resched = 'p'; > break;