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 75AA7C4332F for ; Thu, 9 Nov 2023 23:42:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E8675280017; Thu, 9 Nov 2023 18:42:04 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E3712280016; Thu, 9 Nov 2023 18:42:04 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CFF08280017; Thu, 9 Nov 2023 18:42:04 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id C06FA280016 for ; Thu, 9 Nov 2023 18:42:04 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id A26061CBB50 for ; Thu, 9 Nov 2023 23:42:04 +0000 (UTC) X-FDA: 81440041368.07.DC89074 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf20.hostedemail.com (Postfix) with ESMTP id 52C951C0011 for ; Thu, 9 Nov 2023 23:42:01 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=none; spf=pass (imf20.hostedemail.com: domain of "SRS0=V+KD=GW=goodmis.org=rostedt@kernel.org" designates 145.40.73.55 as permitted sender) smtp.mailfrom="SRS0=V+KD=GW=goodmis.org=rostedt@kernel.org"; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699573323; 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=gnaBFiUsDEcHNsUvNlAIg89Ok6yp/FvZlZAQD0eD/iM=; b=sdMd2jLsJd/fwTujb9Yw1eDJ/zMFsyRDt3CzLGPCMclZHmhZAaeN/1Wj3gNNdNdLi/xGYV f6ftd9GldIyKpoeq/Dlr+lgAyPKntOaDBeVCiXIKOi0qTUbJMCoWVxkuDomhbFWOAR5XCR m54y1Hn6PzKTxGqLqpgUR2GXPqhE8I0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1699573323; a=rsa-sha256; cv=none; b=fCu3NfiSOESOa6ExjeW9zDp6pKwmfryq+FBKq9AMBweDHfZasenqomrN+snkfE1auI8RcF bj/CbqeI0WUwQ3HYnnWcd2O/k1tA/EHmjTJT2ZsBoGsmkTdfD14zWQnVBLDg0kNd4KVTpL XpzHS3lWKtbOfHvDHx96L+vdWtSX1hM= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=none; spf=pass (imf20.hostedemail.com: domain of "SRS0=V+KD=GW=goodmis.org=rostedt@kernel.org" designates 145.40.73.55 as permitted sender) smtp.mailfrom="SRS0=V+KD=GW=goodmis.org=rostedt@kernel.org"; dmarc=none Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id F4193CE13AA; Thu, 9 Nov 2023 23:41:57 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D6806C433C8; Thu, 9 Nov 2023 23:41:48 +0000 (UTC) Date: Thu, 9 Nov 2023 18:41:51 -0500 From: Steven Rostedt To: Dmitry Torokhov Cc: Ankur Arora , linux-kernel@vger.kernel.org, tglx@linutronix.de, peterz@infradead.org, torvalds@linux-foundation.org, paulmck@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, mingo@kernel.org, bristot@kernel.org, mathieu.desnoyers@efficios.com, geert@linux-m68k.org, glaubitz@physik.fu-berlin.de, anton.ivanov@cambridgegreys.com, mattst88@gmail.com, krypton@ulrich-teichert.org, David.Laight@aculab.com, richard@nod.at, mjguzik@gmail.com, Oded Gabbay , Miguel Ojeda , Jens Axboe , Minchan Kim , Sergey Senozhatsky , Sudip Mukherjee , Theodore Ts'o , "Jason A. Donenfeld" , Amit Shah , Gonglei , "Michael S. Tsirkin" , Jason Wang , "David S. Miller" , Davidlohr Bueso , Jonathan Cameron , Dave Jiang , Alison Schofield , Vishal Verma , Ira Weiny , Dan Williams , Sumit Semwal , Christian =?UTF-8?B?S8O2bmln?= , Andi Shyti , Ray Jui , Scott Branden , Chris Packham , Shawn Guo , Sascha Hauer , Junxian Huang , Will Deacon , Joerg Roedel , Mauro Carvalho Chehab , Srinivas Pandruvada , Hans de Goede , Ilpo =?UTF-8?B?SsOkcnZpbmVu?= , Mark Gross , Finn Thain , Michael Schmitz , "James E.J. Bottomley" , "Martin K. Petersen" , Kashyap Desai , Sumit Saxena , Shivasharan S , Mark Brown , Neil Armstrong , Jens Wiklander , Alex Williamson , Helge Deller , David Hildenbrand Subject: Re: [RFC PATCH 85/86] treewide: drivers: remove cond_resched() Message-ID: <20231109184151.52a9aa33@gandalf.local.home> In-Reply-To: References: <20231107215742.363031-1-ankur.a.arora@oracle.com> <20231107230822.371443-1-ankur.a.arora@oracle.com> <20231107230822.371443-29-ankur.a.arora@oracle.com> 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-Stat-Signature: 1jscopobks8f5q9y5a6i47zuz5rpcb94 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 52C951C0011 X-Rspam-User: X-HE-Tag: 1699573321-651276 X-HE-Meta: U2FsdGVkX18k6dgdUT1xIu85hT0EAlIETcJFpK1e+wInYShcdY15K/YQfHG5LMR5XLHMP9Vl46wmrFr2nwBOjYdT8tNB9EeKo6WAqYusC0jPhYl5Vr2dEXftmZs8k3OpXVhNucE6nu8i4Jycp4Y4GM9uu7a2ZaA0sqb6iQ60lUTldNSmA4BRPCUYrDX/5EMx8BMlRq2nbbv+2ucgYjzLOMojuYRZ473s6UTqhAPYgoPAXQAD9OFqJOwKz7B4lyXcpcEWEntd80dZmy4Rj94fZ7nl2kqkaJ7sf2KegdW4a6lVJxA7UsMWLHLtO08t/8PX/5q4UOTNJ3xxT3f2v9EDcgSWdKmYV3Soae+TodyYUW+MDZHjxO0E9nzTWI6zMPHqfR2YKgrCn/5zKh9tPtY1USRz7UkCgoccsU8K619t9ImaNgfMpZVW7+jXgd8Tq3WvJfRNE/pwLiDsDcmqL+baidcmbj9ZyTs0HqTHDwAWp5gePF7nkqke8OMkzB/q1IZ7Vzxzsmi0DkCoUpHpSmD5IJAvvRS5JgYLjIIf+2nJ/tl/bt8m3joL8zHBP3D8DpS1m163CzSXY5ZiL37b+O11MatLH5G2gQjP19S8z2+7BTc0EIMS/ejgtaW3/5wBcz3krqS8JynFKPmiy800o+FwNlCADa33SjNijLF/wVFhe8zAUTA5DBp9yr2BIJj7lNKS+tQV3qPMTQQvD9fSS10aFvvXhb6atz2atFbYg+XmRyw7QEimYQd9R+3Vpy/JVWLF3BcfcCrm+5dO+FsYJt9gHFK8ghWLCfHp28XL8hTzzuYZe3RSCTBE5vqOJoGkq5WHp7FaWCuSi0kzhyh4ZxwT+4KSXuhEGt1fUw9ZHsuuEqjS1QjkbrEefHjD69/lEU8QqfiEW1kA/vOuaqICRFB0Dz49cmVJlfR/qb6amOvq7GadkX8CpyX5buFEViAhmJN2imgp+9a6Pw+FPK6QFIJ AxVVgW2v 1Qf1AgFPSQWsMp6fB+Fop1/OKutI4NMCSwikp9Mthh5uUf08xXVwwwwSL4lrgiG83pMTcKZPcs55tzB9Crbnlt5BK/vlM/QEDufAUrBfOaRLf/ZIukyT+Q7TrWtO7lAmUJzY3zVkrwDINV/ouQvNgV1N9rdCnR+f0VeVMrAOclGznS6tkYqSA13X3So6KVSPuBi9r+mugZAm5FBZHhUXue/BEkxMoXqaLEt5qdN7NpMdUOQ/ZYe9ML0wwM749VH5tdufqive4LcIbLxyNc/uCJcYFwzvB8Sx7c6sIFfEzIe7cgJq6Wx0mm07poiDMyna1NdOq3rkkNQSsajpBNLN61zejyTmRFTMeWG3q8HISpmjBrN+L/SOTrsv1e/P09b1ZsV9L 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: List-Subscribe: List-Unsubscribe: On Thu, 9 Nov 2023 15:25:54 -0800 Dmitry Torokhov wrote: > Hi Anhur, > > On Tue, Nov 07, 2023 at 03:08:21PM -0800, Ankur Arora wrote: > > There are broadly three sets of uses of cond_resched(): > > > > 1. Calls to cond_resched() out of the goodness of our heart, > > otherwise known as avoiding lockup splats. > > ... > > What about RCU stalls? The calls to cond_resched() in evdev.c and > mousedev.c were added specifically to allow RCU to run in cases when > userspace passes a large buffer and the kernel is not fully preemptable. > First, this patch is being sent out premature as it depends on acceptance of the previous patches. When the previous patches are finished, then we don't need cond_resched() to protect against RCU stalls, because even "PREEMPT_NONE" will allow preemption inside the kernel. What the earlier patches do is introduce a concept of NEED_RESCHED_LAZY. Then when the scheduler wants to resched the task, it will set that bit instead of NEED_RESCHED (for the old PREEMPT_NONE version). For VOLUNTARY, it sets the LAZY bit of SCHED_OTHER but NEED_RESCHED for RT/DL tasks. For PREEMPT, it will always set NEED_RESCHED. NEED_RESCHED will always schedule, but NEED_RESCHED_LAZY only schedules when going to user space. Now after on tick (depending on HZ it can be 1ms, 3.3ms, 4ms 10ms) if NEED_RESCHED_LAZY is set, then it will set NEED_RESCHED, forcing a preemption at the next available moment (when preempt count is zero). This will be done even with the old PREEMPT_NONE configuration. That way we will no longer play whack-a-mole to get rid of all he long running kernel paths by inserting cond_resched() in them. -- Steve