From: Steven Rostedt <rostedt@goodmis.org>
To: Christoph Hellwig <hch@infradead.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Ingo Molnar <mingo@elte.hu>,
Andrew Morton <akpm@linux-foundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
john stultz <johnstul@us.ibm.com>,
Oleg Nesterov <oleg@tv-sign.ru>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
Dipankar Sarma <dipankar@in.ibm.com>,
"David S. Miller" <davem@davemloft.net>,
kuznet@ms2.inr.ac.ru
Subject: Re: [RFC PATCH 0/6] Convert all tasklets to workqueues
Date: Fri, 22 Jun 2007 08:32:22 -0400 [thread overview]
Message-ID: <1182515542.5493.20.camel@localhost.localdomain> (raw)
In-Reply-To: <20070622070948.GA21291@infradead.org>
Christoph,
Thanks for taking the time to look at my patches!
On Fri, 2007-06-22 at 08:09 +0100, Christoph Hellwig wrote:
> > I've developed this way to replace all tasklets with work queues without
> > having to change all the drivers that use them. I created an API that
> > uses the tasklet API as a wrapper to a work queue. This API doesn't need
> > to be permanent. It shows 1) that work queues can replace tasklets, and
> > 2) we can remove a duplicate functionality from the kernel. This API
> > only needs to be around until we removed all uses of tasklets from
> > all drivers.
>
> I don't like this wrapping at all. What you're doing is a tradeoff to
> do less work today in exchange for more maintaince overhead and more crufty
> code in the future. So while I sympathize a lot with trying to get rid
> of tasklets I'd rather prefer to convert individual drivers over until
> all users are gone. It's not exactly a very complicated conversion either.
>
> > 6) This is the magic to make tasklets into work queues. It allows for
> > the kernel to be configured either with the normal tasklets, as it is
> > today, or with the tasklets-as-work-queues.
>
> And this is something that might be fine for benchmarking, but not something
> we should put in. Keeping two wildly different implementation of core
> functionality with very different behaviour around is quite bad. Better
> kill tasklets once for all.
Honestly, I highly doubted that this would make it up to Linus's tree.
My aim was to get this into -mm, and perhaps even turn on the
tasklets-as-workqueues as default.
The objective of these patches was more of a proof-of-concept, showing
that the tasklets are indeed obsolete today. By putting this patch set
into -mm, we can get a good idea of the regressions that this conversion
would cause, hopefully before we did the real change of converting a
driver's tasklet into a work queue.
I only have a limited amount of hardware to test on. I believe this is a
good candidate as a permanent resident into -mm and can display the
effects of using work queues instead of tasklets in a wider arena.
This patch is too much of a kludge to put into Linus's tree, and if it
were in that tree, it would probably cause laziness and make it even
less likely that driver authors would get rid of their tasklets. But I
argue it is perfect for the -mm tree, because it allows users to easily
(with a config option) turn it on and off and run benchmarks to see its
effect.
-- Steve
next prev parent reply other threads:[~2007-06-22 12:36 UTC|newest]
Thread overview: 129+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-22 4:00 [RFC PATCH 0/6] Convert all tasklets to workqueues Steven Rostedt
2007-06-22 4:00 ` [RFC PATCH 1/6] Convert the RCU tasklet into a softirq Steven Rostedt
2007-06-22 7:10 ` Christoph Hellwig
2007-06-22 7:43 ` Ingo Molnar
2007-06-22 12:35 ` Steven Rostedt
2007-06-22 12:55 ` Ingo Molnar
2007-06-22 4:00 ` [RFC PATCH 2/6] Split out tasklets from softirq.c Steven Rostedt
2007-06-22 7:11 ` Christoph Hellwig
2007-06-22 12:40 ` Steven Rostedt
2007-06-22 13:45 ` Akinobu Mita
2007-06-22 13:58 ` Steven Rostedt
2007-06-22 4:00 ` [RFC PATCH 3/6] Add a tasklet is-scheduled API Steven Rostedt
2007-06-22 4:00 ` [RFC PATCH 4/6] Make DRM use the tasklet is-sched API Steven Rostedt
2007-06-22 6:36 ` Daniel Walker
2007-06-22 6:49 ` Thomas Gleixner
2007-06-22 7:08 ` Daniel Walker
2007-06-22 12:15 ` Steven Rostedt
2007-06-22 15:36 ` Daniel Walker
2007-06-22 22:38 ` Ingo Molnar
2007-06-22 23:28 ` Daniel Walker
2007-06-22 16:10 ` Arnd Bergmann
2007-06-22 16:56 ` Steven Rostedt
2007-06-22 18:24 ` Christoph Hellwig
2007-06-22 23:38 ` Dave Airlie
2007-06-22 4:00 ` [RFC PATCH 5/6] Move tasklet.h to tasklet_softirq.h Steven Rostedt
2007-06-22 4:00 ` [RFC PATCH 6/6] Convert tasklets to work queues Steven Rostedt
2007-06-22 7:06 ` Daniel Walker
2007-06-22 13:29 ` Steven Rostedt
2007-06-22 15:52 ` Oleg Nesterov
2007-06-22 16:35 ` Steven Rostedt
2007-06-23 11:15 ` Arnd Bergmann
2007-06-22 7:09 ` [RFC PATCH 0/6] Convert all tasklets to workqueues Christoph Hellwig
2007-06-22 7:51 ` Ingo Molnar
2007-06-22 7:53 ` Christoph Hellwig
2007-06-22 11:23 ` Ingo Molnar
2007-06-22 12:32 ` Steven Rostedt [this message]
2007-06-22 12:38 ` Ingo Molnar
2007-06-22 12:58 ` Steven Rostedt
2007-06-22 13:12 ` Ingo Molnar
2007-06-22 14:27 ` Steven Rostedt
2007-06-22 13:13 ` Andrew Morton
2007-06-22 13:26 ` Ingo Molnar
2007-06-22 13:41 ` Andrew Morton
2007-06-22 14:00 ` Ingo Molnar
2007-06-22 13:35 ` Steven Rostedt
2007-06-22 14:25 ` Arjan van de Ven
2007-06-22 14:42 ` Steven Rostedt
2007-06-22 14:43 ` Arjan van de Ven
2007-06-22 17:16 ` Linus Torvalds
2007-06-22 17:31 ` Steven Rostedt
2007-06-22 18:32 ` Christoph Hellwig
2007-06-22 20:40 ` Ingo Molnar
2007-06-22 21:00 ` Christoph Hellwig
2007-06-22 21:10 ` Ingo Molnar
2007-06-22 21:13 ` Thomas Gleixner
2007-06-22 21:37 ` Linus Torvalds
2007-06-22 21:59 ` Ingo Molnar
2007-06-22 22:09 ` Ingo Molnar
2007-06-22 22:43 ` Roland Dreier
2007-06-22 22:57 ` Alan Cox
2007-06-22 22:58 ` Steven Rostedt
2007-06-23 6:23 ` Dave Airlie
2007-06-24 15:16 ` Jonathan Corbet
2007-06-24 15:52 ` Steven Rostedt
2007-06-25 16:50 ` Tilman Schmidt
2007-06-25 17:06 ` Steven Rostedt
2007-06-25 20:50 ` Tilman Schmidt
2007-06-25 21:03 ` Steven Rostedt
2007-06-25 19:52 ` Stephen Hemminger
2007-06-26 0:00 ` Jonathan Corbet
2007-06-26 0:52 ` Steven Rostedt
2007-06-25 18:48 ` Kristian Høgsberg
2007-06-25 19:11 ` Steven Rostedt
2007-06-25 20:07 ` Kristian Høgsberg
2007-06-25 20:31 ` Steven Rostedt
2007-06-25 21:08 ` Kristian Høgsberg
2007-06-25 21:15 ` Ingo Molnar
2007-06-25 23:36 ` Stefan Richter
2007-06-26 0:46 ` Steven Rostedt
2007-06-26 1:46 ` Dan Williams
2007-06-26 2:01 ` Steven Rostedt
2007-06-26 2:12 ` Dan Williams
2007-06-28 12:37 ` Steven Rostedt
2007-06-28 16:37 ` Oleg Nesterov
2007-06-28 18:02 ` Dan Williams
2007-06-28 20:46 ` Steven Rostedt
2007-06-28 21:23 ` Dan Williams
2007-06-28 21:40 ` Dan Williams
2007-06-28 22:01 ` Steven Rostedt
2007-06-28 22:00 ` Steven Rostedt
2007-06-28 5:48 ` Jeff Garzik
2007-06-28 9:23 ` Ingo Molnar
2007-06-28 14:38 ` Alexey Kuznetsov
2007-06-28 15:23 ` Jeff Garzik
2007-06-28 15:54 ` Steven Rostedt
2007-06-28 16:00 ` Ingo Molnar
2007-06-28 17:26 ` Jeff Garzik
2007-06-28 17:44 ` Jeff Garzik
2007-06-28 18:19 ` Andrew Morton
2007-06-28 20:07 ` Ingo Molnar
2007-06-29 11:34 ` Alexey Kuznetsov
2007-06-29 11:48 ` Duncan Sands
2007-06-29 13:36 ` Alexey Kuznetsov
2007-06-29 14:01 ` Duncan Sands
2007-06-29 16:34 ` Alexey Kuznetsov
2007-06-29 12:29 ` Ingo Molnar
2007-06-29 13:25 ` Alexey Kuznetsov
2007-06-29 13:43 ` Ingo Molnar
2007-06-29 15:23 ` Alexey Kuznetsov
2007-06-29 13:41 ` Steven Rostedt
2007-06-29 14:24 ` Jeff Garzik
2007-06-29 14:26 ` Oleg Nesterov
2007-06-29 19:04 ` Alexey Kuznetsov
2007-06-29 14:27 ` Alexey Kuznetsov
2007-06-29 15:51 ` Oleg Nesterov
2007-06-29 16:21 ` Alexey Kuznetsov
2007-06-29 16:52 ` Oleg Nesterov
2007-06-29 17:09 ` Oleg Nesterov
2007-06-30 11:25 ` Oleg Nesterov
2007-06-28 15:17 ` Jeff Garzik
2007-06-22 21:53 ` Daniel Walker
2007-06-22 22:09 ` david
2007-06-22 22:15 ` Daniel Walker
2007-06-22 22:44 ` Ingo Molnar
2007-06-22 23:28 ` Daniel Walker
2007-06-22 22:15 ` Ingo Molnar
2007-06-23 5:14 ` Stephen Hemminger
-- strict thread matches above, loose matches on Subject: below --
2007-06-26 13:03 Clemens Ladisch
2007-06-26 13:15 ` Takashi Iwai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1182515542.5493.20.camel@localhost.localdomain \
--to=rostedt@goodmis.org \
--cc=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=dipankar@in.ibm.com \
--cc=hch@infradead.org \
--cc=johnstul@us.ibm.com \
--cc=kuznet@ms2.inr.ac.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=oleg@tv-sign.ru \
--cc=paulmck@linux.vnet.ibm.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox