From: Ingo Molnar <mingo@elte.hu>
To: Lee Revell <rlrevell@joe-job.com>
Cc: Andrew Morton <akpm@osdl.org>,
linux-audio-dev@music.columbia.edu, arjanv@redhat.com,
linux-kernel <linux-kernel@vger.kernel.org>,
"La Monte H.P. Yarroll" <piggy@timesys.com>
Subject: Re: [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch
Date: Wed, 21 Jul 2004 10:22:18 +0200 [thread overview]
Message-ID: <20040721082218.GA19013@elte.hu> (raw)
In-Reply-To: <1090389791.901.31.camel@mindpipe>
* Lee Revell <rlrevell@joe-job.com> wrote:
> I can also add that La Monte H. P. Yarroll's patch to daemonize
> softirqs seems to provide major improvements in latency (does not help
> this problem of course). There has been at least one other patch
> posted to LKML that that does the same thing. Will this feature be in
> the kernel anytime soon?
we already 'daemonize' softirqs in the stock kernel if the load is high
enough. (this is what ksoftirqd does) So the only question is a tunable
to make this deferring of softirq load mandatory. Yarroll's patch is
quite complex, i dont think that is necessary. It also has at least one
conceptual problem, the NOP-ing of local_bh_disable/enable in case of
CONFIG_SOFTIRQ_THREADS is clearly wrong. Yarroll?
I've added a very simple solution to daemonize softirqs similar to
Yarroll's patch to the -H5 version of voluntary-preempt:
http://redhat.com/~mingo/voluntary-preempt/voluntary-preempt-2.6.8-rc2-H5
the 'level' of preemption is controlled via the value of
voluntary_preempt - a level of 2 (default) means that softirq-deferring
is done too. A level of 1 means only the extra preemption points are
activated, level 0 means the vanilla scheduling and softirq behavior.
below i've also attached a softirq.c patch against 2.6.8-rc2 that does
unconditional deferring. (this patch is of course not intended to be
merged upstream as-is, since normally we want to process softirqs right
after the irq context.)
Ingo
--- linux/kernel/softirq.c.orig
+++ linux/kernel/softirq.c
@@ -70,7 +70,7 @@ static inline void wakeup_softirqd(void)
*/
#define MAX_SOFTIRQ_RESTART 10
-asmlinkage void __do_softirq(void)
+asmlinkage void ___do_softirq(void)
{
struct softirq_action *h;
__u32 pending;
@@ -106,6 +106,23 @@ restart:
__local_bh_enable();
}
+asmlinkage void __do_softirq(void)
+{
+ /*
+ * 'preempt harder'. Push all softirq processing off to ksoftirqd.
+ */
+ if (local_softirq_pending())
+ wakeup_softirqd();
+}
+
+asmlinkage void _do_softirq(void)
+{
+ local_irq_disable();
+ ___do_softirq();
+ local_irq_enable();
+}
+
+
#ifndef __ARCH_HAS_DO_SOFTIRQ
asmlinkage void do_softirq(void)
@@ -340,7 +363,7 @@ static int ksoftirqd(void * __bind_cpu)
preempt_disable();
if (cpu_is_offline((long)__bind_cpu))
goto wait_to_die;
- do_softirq();
+ _do_softirq();
preempt_enable();
cond_resched();
}
next prev parent reply other threads:[~2004-07-21 9:50 UTC|newest]
Thread overview: 271+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-09 18:26 [announce] [patch] Voluntary Kernel Preemption Patch Ingo Molnar
2004-07-09 19:51 ` Christoph Hellwig
2004-07-09 23:50 ` Andrea Arcangeli
2004-07-10 0:52 ` Andrea Arcangeli
2004-07-10 1:02 ` Dave Jones
2004-07-12 10:17 ` Takashi Iwai
2004-07-12 19:36 ` Andrea Arcangeli
2004-07-13 7:43 ` Takashi Iwai
2004-07-10 6:32 ` Arjan van de Ven
2004-07-10 7:57 ` Ingo Molnar
2004-07-10 8:10 ` ismail dönmez
2004-07-10 8:28 ` Ingo Molnar
2004-07-19 10:36 ` [patch] voluntary-preempt 2.6.8-rc2-H4 Ingo Molnar
2004-07-20 1:38 ` Ramón Rey Vicente
2004-07-20 6:02 ` Ingo Molnar
2004-07-10 15:36 ` [announce] [patch] Voluntary Kernel Preemption Patch Andrea Arcangeli
2004-07-10 12:48 ` Ingo Molnar
2004-07-10 15:12 ` Con Kolivas
2004-07-10 15:14 ` Arjan van de Ven
2004-07-10 15:18 ` Con Kolivas
2004-07-11 7:07 ` Zwane Mwaikambo
2004-07-11 7:09 ` Con Kolivas
2004-07-11 7:16 ` [announce] [patch] " Zwane Mwaikambo
2004-07-11 9:18 ` Ingo Molnar
2004-07-11 9:29 ` Con Kolivas
2004-07-10 16:18 ` [announce] [patch] " Con Kolivas
2004-07-11 6:47 ` [ck] " Ingo Molnar
2004-07-11 6:59 ` Con Kolivas
2004-07-11 11:18 ` R. J. Wysocki
2004-07-11 7:09 ` [ck] Re: [announce] [patch] " Zwane Mwaikambo
2004-07-11 14:27 ` Con Kolivas
2004-07-11 14:29 ` Con Kolivas
2004-07-11 14:38 ` Ingo Molnar
2004-07-11 17:29 ` André Goddard Rosa
2004-07-11 17:49 ` Grzegorz Kulewski
2004-07-11 21:20 ` Con Kolivas
2004-07-11 21:25 ` Grzegorz Kulewski
2004-07-11 20:17 ` Ingo Molnar
2004-07-12 8:23 ` Voluntary Preemption + concurent games Aivils
2004-07-12 9:51 ` Con Kolivas
2004-07-12 10:45 ` Lenar Lõhmus
2004-07-12 11:52 ` Aivils
2004-07-12 13:35 ` Nick Piggin
2004-07-12 14:15 ` [ck] Re: [announce] [patch] Voluntary Kernel Preemption Patch Chris Friesen
2004-07-12 14:19 ` Ingo Molnar
2004-07-10 15:58 ` Andrea Arcangeli
2004-07-09 21:13 ` Redeeman
2004-07-10 8:02 ` Ingo Molnar
2004-07-10 8:50 ` Ingo Molnar
2004-07-10 10:55 ` ismail dönmez
2004-07-10 11:26 ` Arjan van de Ven
2004-07-10 12:01 ` ismail dönmez
2004-07-10 12:05 ` Arjan van de Ven
2004-07-10 12:09 ` Nick Piggin
2004-07-10 12:35 ` Ingo Molnar
2004-07-10 12:58 ` ismail dönmez
2004-07-10 13:55 ` Ingo Molnar
2004-07-10 14:45 ` Nick Piggin
2004-07-10 14:57 ` ismail dönmez
2004-07-12 10:48 ` Takashi Iwai
2004-07-12 13:09 ` ismail dönmez
2004-07-12 13:14 ` Takashi Iwai
2004-07-09 21:36 ` Torrey Hoffman
2004-07-10 8:23 ` Ingo Molnar
2004-07-10 1:00 ` Con Kolivas
2004-07-10 1:04 ` Dave Jones
2004-07-10 12:55 ` Ingo Molnar
2004-07-11 5:25 ` Andrew Morton
2004-07-11 9:32 ` Ingo Molnar
2004-07-11 9:45 ` Andrew Morton
2004-07-11 9:50 ` Ingo Molnar
2004-07-11 9:58 ` Andrew Morton
2004-07-11 10:30 ` Ingo Molnar
2004-07-11 10:42 ` Andrew Morton
2004-07-11 10:59 ` Arjan van de Ven
2004-07-11 11:13 ` Andrew Morton
2004-07-11 18:07 ` Mikulas Patocka
2004-07-12 7:08 ` Zwane Mwaikambo
2004-07-19 10:20 ` Ingo Molnar
2004-07-11 23:12 ` Robert Love
2004-07-12 22:40 ` Bill Davidsen
2004-07-12 13:24 ` John Stoffel
2004-07-12 22:56 ` [linux-audio-dev] " Lee Revell
2004-07-12 23:31 ` Andrew Morton
2004-07-12 23:58 ` Paul Davis
2004-07-13 0:06 ` Andrew Morton
2004-07-13 0:21 ` Con Kolivas
2004-07-13 1:01 ` [linux-audio-dev] Re: [announce] [patch] " Lee Revell
2004-07-13 7:49 ` Takashi Iwai
2004-07-13 8:12 ` Lee Revell
2004-07-13 0:01 ` Paul Davis
2004-07-13 0:08 ` Andrew Morton
2004-07-13 16:25 ` Andrea Arcangeli
2004-07-13 18:42 ` Lee Revell
2004-07-13 21:29 ` Andrew Morton
2004-07-13 21:45 ` Lee Revell
2004-07-14 8:51 ` Takashi Iwai
2004-07-14 9:36 ` Lee Revell
2004-07-14 10:48 ` Takashi Iwai
2004-07-14 14:52 ` Lee Revell
2004-07-14 16:29 ` Lee Revell
2004-07-14 10:26 ` Benno Senoner
2004-07-13 18:48 ` Andrew Morton
2004-07-13 21:38 ` Andrea Arcangeli
2004-07-13 21:54 ` Andrew Morton
2004-07-13 22:01 ` Andrea Arcangeli
2004-07-13 22:25 ` Andrew Morton
2004-07-13 22:37 ` Andrea Arcangeli
2004-07-13 22:44 ` Andrew Morton
2004-07-13 22:53 ` Andrea Arcangeli
2004-07-13 23:06 ` Andrew Morton
2004-07-13 23:18 ` Andrea Arcangeli
2004-07-13 23:32 ` Andrew Morton
2004-07-14 0:40 ` Andrea Arcangeli
2004-07-14 0:45 ` Andrew Morton
2004-07-19 11:59 ` Ingo Molnar
2004-09-02 22:03 ` Andrea Arcangeli
2004-09-02 22:20 ` Andrew Morton
2004-09-02 23:03 ` Ingo Molnar
2004-09-02 23:21 ` Ingo Molnar
2004-07-13 7:58 ` Takashi Iwai
2004-07-13 0:17 ` Lee Revell
2004-07-13 0:46 ` Andrew Morton
2004-07-13 2:52 ` Lee Revell
2004-07-13 3:59 ` Andrew Morton
2004-07-13 7:57 ` Lee Revell
2004-07-19 10:48 ` Ingo Molnar
2004-07-19 11:34 ` Ingo Molnar
2004-07-20 5:38 ` Lee Revell
2004-07-20 6:12 ` Ingo Molnar
2004-07-20 6:59 ` Lee Revell
2004-07-20 7:11 ` Ingo Molnar
[not found] ` <200407202011.20558.musical_snake@gmx.de>
2004-07-20 19:56 ` Lee Revell
2004-07-20 23:49 ` Benno Senoner
2004-07-21 0:32 ` [linux-audio-dev] " Lee Revell
2004-07-21 1:25 ` Timothy Miller
2004-07-21 21:38 ` Another dumb question about " Timothy Miller
2004-07-24 0:25 ` Lee Revell
2004-07-25 20:19 ` Timothy Miller
2004-07-25 20:13 ` Lee Revell
2004-07-21 10:53 ` [linux-audio-dev] Re: [announce] [patch] " Florian Schmidt
2004-07-21 11:18 ` Thomas Charbonnel
2004-07-21 12:04 ` pci gfx card / jack xruns / pci latencies (was: Re: [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch) Florian Schmidt
2004-07-21 17:49 ` [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch Fernando Pablo Lopez-Lezcano
2004-07-22 22:25 ` Andrew McGregor
2004-07-22 23:16 ` Florian Schmidt
2004-07-21 14:27 ` Benno Senoner
2004-07-20 12:19 ` Jens Axboe
2004-07-20 21:32 ` Lee Revell
2004-07-24 4:07 ` Lee Revell
2004-07-24 5:46 ` Lee Revell
2004-07-24 6:33 ` Lee Revell
2004-07-24 6:43 ` Ingo Molnar
2004-07-24 22:49 ` Lee Revell
2004-07-24 23:30 ` Lee Revell
2004-07-24 11:27 ` max request size 1024KiB by default? Rudo Thomas
2004-07-24 22:58 ` Lee Revell
2004-07-26 19:29 ` Johannes Stezenbach
2004-07-27 5:15 ` Jens Axboe
2004-07-24 12:41 ` [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch Mark Lord
2004-07-24 4:58 ` Lee Revell
2004-07-13 8:31 ` Lee Revell
2004-07-13 8:43 ` Andrew Morton
2004-07-13 8:53 ` Lee Revell
2004-07-13 9:00 ` Andrew Morton
2004-07-13 9:21 ` Takashi Iwai
2004-07-13 9:25 ` Andrew Morton
2004-07-13 9:33 ` Takashi Iwai
2004-07-13 9:44 ` Andrew Morton
2004-07-13 9:23 ` Lee Revell
2004-07-13 9:29 ` Andrew Morton
2004-07-13 20:37 ` Lee Revell
2004-07-13 22:32 ` Lee Revell
2004-07-13 8:07 ` Takashi Iwai
2004-07-13 22:40 ` Bill Davidsen
2004-07-13 23:47 ` Randy.Dunlap
2004-07-19 10:29 ` Ingo Molnar
2004-07-21 3:27 ` Lee Revell
2004-07-21 7:03 ` Andrew Morton
2004-07-21 4:58 ` Lee Revell
2004-07-21 5:30 ` Ingo Molnar
2004-07-21 6:03 ` Lee Revell
2004-07-21 8:22 ` Ingo Molnar [this message]
2004-07-21 8:52 ` Ingo Molnar
2004-07-21 11:32 ` Nick Piggin
2004-07-21 15:44 ` Ingo Molnar
2004-07-22 4:56 ` Nick Piggin
2004-07-22 7:07 ` Ingo Molnar
2004-07-22 10:54 ` Nick Piggin
2004-07-22 16:23 ` Ingo Molnar
2004-07-22 22:11 ` Nick Piggin
2004-07-23 5:47 ` Ingo Molnar
2004-07-23 6:45 ` Nick Piggin
2004-07-23 6:55 ` Ingo Molnar
2004-07-23 7:11 ` Nick Piggin
2004-07-23 7:21 ` Ingo Molnar
2004-07-23 7:28 ` Nick Piggin
2004-07-21 18:34 ` Scott Wood
2004-07-21 18:46 ` Ingo Molnar
2004-07-21 19:56 ` Scott Wood
2004-07-21 21:08 ` Ingo Molnar
2004-07-22 2:47 ` Scott Wood
2004-07-21 21:45 ` Ingo Molnar
2004-07-22 2:28 ` Scott Wood
2004-07-22 7:40 ` Ingo Molnar
2004-07-22 18:53 ` Scott Wood
2004-07-22 19:45 ` Bill Huey
2004-07-28 6:45 ` Ingo Molnar
2004-07-28 20:52 ` Scott Wood
2004-07-29 18:21 ` Ingo Molnar
2004-07-29 18:36 ` Bill Huey
2004-07-29 19:17 ` Scott Wood
2004-07-29 19:25 ` Bill Huey
2004-07-30 2:23 ` Eric St-Laurent
2004-07-29 20:26 ` Pavel Machek
2004-07-29 20:57 ` Scott Wood
2004-07-29 21:00 ` Pavel Machek
2004-07-29 21:07 ` Ingo Molnar
2004-07-21 22:52 ` Nick Piggin
2004-07-21 18:32 ` Scott Wood
2004-07-21 20:40 ` Ingo Molnar
2004-07-21 18:30 ` Scott Wood
2004-07-21 18:43 ` Ingo Molnar
2004-07-22 2:32 ` Scott Wood
2004-07-22 9:51 ` Ingo Molnar
2004-07-22 18:36 ` Scott Wood
2004-07-22 19:11 ` Robert Love
2004-07-21 21:00 ` Scott Wood
2004-07-21 21:18 ` Ingo Molnar
2004-07-21 22:14 ` Bill Huey
2004-07-21 22:31 ` Bill Huey
2004-07-21 22:37 ` Scott Wood
2004-07-22 10:06 ` [patch] voluntary-preempt-2.6.8-rc2-H9 Ingo Molnar
2004-07-22 16:00 ` scheduling while atomic (Re: voluntary-preempt-2.6.8-rc2-H9) Rudo Thomas
2004-07-22 16:19 ` Ingo Molnar
2004-07-22 17:24 ` voluntary-preempt I0: sluggish feel Rudo Thomas
2004-07-22 17:52 ` Matt Heler
2004-07-22 17:54 ` Rudo Thomas
2004-07-22 18:01 ` Ingo Molnar
2004-07-22 18:08 ` Ingo Molnar
2004-07-22 18:14 ` Ingo Molnar
2004-07-22 18:37 ` Rudo Thomas
2004-07-23 10:42 ` [patch] voluntary-preempt-2.6.8-rc2-I3 Ingo Molnar
2004-07-23 10:58 ` Paolo Ciarrocchi
2004-07-23 11:04 ` Ingo Molnar
2004-07-23 11:28 ` [patch] voluntary-preempt-2.6.8-rc2-I4 Ingo Molnar
2004-07-24 0:16 ` Lee Revell
2004-07-23 11:42 ` [patch] voluntary-preempt-2.6.8-rc2-I3 Paolo Ciarrocchi
2004-07-23 12:00 ` Ingo Molnar
2004-07-23 15:36 ` Dang, Linh [CAR:2X23:EXCH]
2004-07-23 23:48 ` Thomas Charbonnel
2004-07-26 11:10 ` Ingo Molnar
2004-07-26 12:27 ` Thomas Charbonnel
2004-07-22 18:31 ` voluntary-preempt I0: sluggish feel Robert Love
2004-07-22 18:32 ` Rudo Thomas
2004-07-22 18:38 ` Ingo Molnar
2004-07-22 18:00 ` Ingo Molnar
2004-07-21 6:07 ` [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch Lee Revell
2004-07-21 10:14 ` Roger Luethi
2004-07-13 0:58 ` Jan Depner
2004-07-13 1:00 ` Andrew Morton
2004-07-13 3:31 ` Florin Andrei
2004-07-13 6:31 ` Paul Winkler
2004-07-13 13:26 ` Benno Senoner
2004-07-13 14:50 ` Paul Davis
2004-07-13 19:45 ` Lee Revell
2004-07-13 22:17 ` Bill Davidsen
2004-07-16 4:50 ` Florin Andrei
2004-07-16 12:49 ` Takashi Iwai
2004-07-13 21:53 ` Timothy Miller
-- strict thread matches above, loose matches on Subject: below --
2004-07-13 15:16 [linux-audio-dev] " Shane Shrybman
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=20040721082218.GA19013@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@osdl.org \
--cc=arjanv@redhat.com \
--cc=linux-audio-dev@music.columbia.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=piggy@timesys.com \
--cc=rlrevell@joe-job.com \
/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