From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Zijlstra Subject: Re: [PATCH RFC -rt] updated synchronize_all_irqs implementation Date: Wed, 26 Sep 2007 22:54:46 +0200 Message-ID: <1190840086.18147.38.camel@lappy> References: <20070925193454.GH8432@linux.vnet.ibm.com> <20070926012447.7ffdd45a@lappy> <20070926011139.GW8432@linux.vnet.ibm.com> <20070926102833.17f7c025@twins> <20070926130326.GC19496@linux.vnet.ibm.com> <20070926155656.GA9101@linux.vnet.ibm.com> <20070926195513.GA10544@linux.vnet.ibm.com> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Cc: Steven Rostedt , Dmitry Torokhov , linux-rt-users@vger.kernel.org, mingo@elte.hu, tglx@linutronix.de, dvhltc@us.ibm.com, tytso@us.ibm.com, akpm@linux-foundation.org, nickpiggin@yahoo.com.au To: paulmck@linux.vnet.ibm.com Return-path: Received: from pentafluge.infradead.org ([213.146.154.40]:60311 "EHLO pentafluge.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1760667AbXIZU6q (ORCPT ); Wed, 26 Sep 2007 16:58:46 -0400 In-Reply-To: <20070926195513.GA10544@linux.vnet.ibm.com> Sender: linux-rt-users-owner@vger.kernel.org List-Id: linux-rt-users.vger.kernel.org On Wed, 2007-09-26 at 12:55 -0700, Paul E. McKenney wrote: > Well, we could make spin_lock_irqsave() invoke rcu_read_lock() and > spin_lock_irqrestore() invoke rcu_read_unlock(), with similar adjustments > to the other primitives in this group. Then RCU priority boosting would > kick in if configured. Might be me, but 'hiding' the RCU scope like that makes my skin crawl. What is wrong with using rcu_read_lock() explicitly where you depend on it? It even makes the code cleaner in that it documents the usage. These blanket locks like lock_kernel(), preempt_disable(), local_irq_disable() etc. are very hard to get rid of because they don't document what is protected. Please lets not add to this mess and keep all this explicit. Yes, -rt changes the preemption model, and that has concequences. But IMHO the resulting code is cleaner in most cases. I'd go as far as to depricate synchronize_sched() and replace all its users with proper RCU. The more I think of it, the more I dislike this synchronize_all_irqs() and the 'magic' property of irq handlers.