[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e9c3a7c20706251846v17347ab2n4a1d314734528c95@mail.gmail.com>
Date: Mon, 25 Jun 2007 18:46:39 -0700
From: "Dan Williams" <dan.j.williams@...el.com>
To: "Ingo Molnar" <mingo@...e.hu>
Cc: "Linus Torvalds" <torvalds@...ux-foundation.org>,
"Steven Rostedt" <rostedt@...dmis.org>,
LKML <linux-kernel@...r.kernel.org>,
"Andrew Morton" <akpm@...ux-foundation.org>,
"Thomas Gleixner" <tglx@...utronix.de>,
"Christoph Hellwig" <hch@...radead.org>,
"john stultz" <johnstul@...ibm.com>,
"Oleg Nesterov" <oleg@...sign.ru>,
"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
"Dipankar Sarma" <dipankar@...ibm.com>,
"David S. Miller" <davem@...emloft.net>, matthew.wilcox@...com,
kuznet@....inr.ac.ru
Subject: Re: [RFC PATCH 0/6] Convert all tasklets to workqueues
> so how about the following, different approach: anyone who has a tasklet
> in any performance-sensitive codepath, please yell now. We'll also do a
> proactive search for such places. We can convert those places to
> softirqs, or move them back into hardirq context. Once this is done -
> and i doubt it will go beyond 1-2 places - we can just mass-convert the
> other 110 places to the lame but compatible solution of doing them in a
> global thread context.
>
I have a driver / testcase that reacts negatively to a workqueue
conversion. This is with the iop-adma driver on an ARM based platform
re-syncing a degraded raid5 array. The driver is currently in -mm and
it uses tasklets to run a short callback routine upon completion of an
offloaded memcpy or xor operation. Quick tests show that
write-throughput does not go down too much, but resync speed, as
reported by /proc/mdstat, drops from ~50MB/s to ~30MB/s.
Context switches on this platform flush the L1 cache so bouncing
between a workqueue and the MD thread is painful.
The conversion patch is attached.
--
Dan
View attachment "iop-adma-workq-conv.patch" of type "text/x-patch" (3739 bytes)
Powered by blists - more mailing lists