Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753968AbXFYUeS (ORCPT ); Mon, 25 Jun 2007 16:34:18 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751573AbXFYUeJ (ORCPT ); Mon, 25 Jun 2007 16:34:09 -0400 Received: from ms-smtp-02.nyroc.rr.com ([24.24.2.56]:51852 "EHLO ms-smtp-02.nyroc.rr.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751433AbXFYUeH convert rfc822-to-8bit (ORCPT ); Mon, 25 Jun 2007 16:34:07 -0400 Subject: Re: [RFC PATCH 0/6] Convert all tasklets to workqueues From: Steven Rostedt To: Kristian =?ISO-8859-1?Q?H=F8gsberg?= Cc: Ingo Molnar , Linus Torvalds , LKML , Andrew Morton , Thomas Gleixner , Christoph Hellwig , john stultz , Oleg Nesterov , "Paul E. McKenney" , Dipankar Sarma , "David S. Miller" , kuznet@ms2.inr.ac.ru In-Reply-To: <1182802021.1689.50.camel@hinata.boston.redhat.com> References: <20070622040014.234651401@goodmis.org> <20070622204058.GA11777@elte.hu> <20070622215953.GA22917@elte.hu> <1182797325.1689.14.camel@hinata.boston.redhat.com> <1182798678.5493.179.camel@localhost.localdomain> <1182802021.1689.50.camel@hinata.boston.redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Date: Mon, 25 Jun 2007 16:31:04 -0400 Message-Id: <1182803464.5493.213.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1741 Lines: 38 On Mon, 2007-06-25 at 16:07 -0400, Kristian H?gsberg wrote: > > Maybe we should be looking at something like GENERIC_SOFTIRQ to run > > functions that a driver could add. But they would run only on the CPU > > that scheduled them, and do not guarantee non-reentrant as tasklets do > > today. > > Sounds like this will fill the gap. Of course, this won't reduce the > number of delayed-execution mechanisms available... I disagree. Adding a generic softirq is not really adding another delayed-execution, it's just extending the sofitrq. It would not have any different semantics as a normal softirq, except that it would be dynamic for modules to use. A tasklet has different concepts than softirq. It adds non-reentrancy and that the tasklet function can run where it wasn't scheduled. Adding a generic softirq would keep the same concepts as a softirq but just extend the users for it. Tasklets are probably not the best for critical sections since it can be postponed longer if it was scheduled on another CPU that is handling a bunch of other tasklets. So the latency of running the tasklet is higher and you lose a cache advantage by jumping to another CPU to execute. Work queues already exist, so all we need to do to replace tasklets is to extend softirqs for those critical cases that tasklets are used, and replace the rest with work queues. By removing the non critical tasklets to work queues will even lower the latency to execution of the more critical tasklets. -- Steve - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/