From: Daniel Walker <dwalker@mvista.com>
To: Esben Nielsen <simlo@phys.au.dk>
Cc: linux-kernel@vger.kernel.org, mingo@elte.hu, sdietrich@mvista.com
Subject: Re: [PATCH] local_irq_disable removal
Date: Fri, 10 Jun 2005 17:20:47 -0700 [thread overview]
Message-ID: <1118449247.27756.47.camel@dhcp153.mvista.com> (raw)
In-Reply-To: <Pine.OSF.4.05.10506110117180.5042-100000@da410.phys.au.dk>
On Sat, 2005-06-11 at 01:37 +0200, Esben Nielsen wrote:
> I am sorry, Daniel, but this patch doesn't make much sense to me.
> As far as I can see you effectlively turned local_irq_disable() into a
> preempt_disable(). I.e. it gives no improvement to task latency. As all
> interrupts are threaded it will not improve irq-latency either....
It does turn local_irq_disable() into a preempt_disable() . My
definition of IRQ latency is the longest period that interrupts are
disabled. So my patch does reduce interrupt latency.
> I hope it is just me who have misunderstood the patch, but as far as I see
> it
> taks->preempt_count
> is non-zero in a local_irq_disable() region. That means preempt_schedule()
> wont schedule.
True.
> What is the problem you wanted to fix in the first place?
> Drivers and subsystems using local_irq_disable()/enable() as a lock -
> which is valid for !PREEMPT_RT to protect per-cpu variables but not a good
> idea when we want determnistic realtime. Thus these regions needs to be
> made preemptive, such any RT events can come through even though you have
> enabled a non-RT subsystem where local_irq_disable()/enable() haven't
> been removed.
My patch gives a set upper bound on interrupt latency that doesn't
change depending on config. You can also measure all these disable
sections. Your missing the relevance of the SA_NODELAY flag. If you have
a specific interrupt that you want to be low latency you would flag it
SA_NODELAY .
> As far as I can see the only solution is to replace them with a per-cpu
> mutex. Such a mutex can be the rt_mutex for now, but someone may want to
> make a more optimized per-cpu version where a raw_spin_lock isn't used.
> That would make it nearly as cheap as cli()/sti() when there is no
> congestion. One doesn't need PI for this region either as the RT
> subsystems will not hit it anyway.
I don't like this solution mainly because it's so expensive. cli/sti may
take a few cycles at most, what your suggesting may take 50 times that,
which would similar in speed to put linux under adeos.. Plus take into
account that the average interrupt disable section is very small .. I
also think it's possible to extend my version to allow those section to
be preemptible but keep the cost equally low.
Daniel
next prev parent reply other threads:[~2005-06-11 0:21 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-08 7:08 Daniel Walker
2005-06-08 11:21 ` Ingo Molnar
2005-06-08 20:33 ` Daniel Walker
2005-06-09 11:56 ` Ingo Molnar
2005-06-10 23:37 ` Esben Nielsen
2005-06-11 0:20 ` Daniel Walker [this message]
2005-06-11 13:13 ` Esben Nielsen
2005-06-11 13:46 ` Ingo Molnar
2005-06-11 14:32 ` Esben Nielsen
2005-06-11 16:36 ` Daniel Walker
2005-06-11 17:26 ` Thomas Gleixner
2005-06-11 18:40 ` Sven-Thorsten Dietrich
2005-06-12 0:07 ` Thomas Gleixner
2005-06-12 0:15 ` Sven-Thorsten Dietrich
2005-06-12 0:22 ` Thomas Gleixner
2005-06-12 0:24 ` Sven-Thorsten Dietrich
2005-06-11 19:16 ` Ingo Molnar
2005-06-11 19:34 ` Esben Nielsen
2005-06-11 19:44 ` Sven-Thorsten Dietrich
2005-06-11 19:53 ` Daniel Walker
2005-06-11 20:23 ` Esben Nielsen
2005-06-11 22:59 ` Sven-Thorsten Dietrich
2005-06-13 5:22 ` Steven Rostedt
2005-06-13 6:20 ` Sven-Thorsten Dietrich
2005-06-13 12:28 ` Steven Rostedt
2005-06-11 20:03 ` Ingo Molnar
2005-06-11 20:51 ` Daniel Walker
2005-06-11 23:44 ` Thomas Gleixner
2005-06-11 23:50 ` Daniel Walker
2005-06-12 0:01 ` Thomas Gleixner
2005-06-12 0:09 ` Sven-Thorsten Dietrich
2005-06-12 0:28 ` Thomas Gleixner
2005-06-12 1:05 ` Gene Heskett
2005-06-13 12:03 ` Paulo Marques
2005-06-13 12:19 ` Esben Nielsen
2005-06-12 4:50 ` cutaway
2005-06-12 6:57 ` Ingo Molnar
2005-06-12 11:15 ` Esben Nielsen
2005-06-12 11:52 ` Ingo Molnar
2005-06-13 7:01 ` Sven-Thorsten Dietrich
2005-06-13 7:53 ` Esben Nielsen
2005-06-13 8:05 ` Sven-Thorsten Dietrich
2005-06-13 8:54 ` Esben Nielsen
2005-06-13 9:13 ` Ingo Molnar
2005-06-12 15:28 ` Daniel Walker
2005-06-12 4:31 ` Karim Yaghmour
2005-06-12 4:32 ` Daniel Walker
2005-06-12 4:56 ` Karim Yaghmour
2005-06-12 4:55 ` Daniel Walker
2005-06-12 5:16 ` Karim Yaghmour
2005-06-12 5:14 ` Daniel Walker
2005-06-12 5:27 ` Karim Yaghmour
2005-06-12 15:27 ` Zwane Mwaikambo
2005-06-12 15:46 ` Daniel Walker
2005-06-12 19:02 ` Ingo Molnar
2005-06-12 17:02 ` Andi Kleen
2005-06-13 7:08 ` Sven-Thorsten Dietrich
2005-06-13 7:44 ` Esben Nielsen
2005-06-13 7:53 ` Sven-Thorsten Dietrich
2005-06-13 7:56 ` Ingo Molnar
2005-06-13 7:47 ` Ingo Molnar
2005-06-11 16:41 ` Sven-Thorsten Dietrich
2005-06-11 17:16 ` Esben Nielsen
2005-06-11 19:29 ` Sven-Thorsten Dietrich
2005-06-11 20:02 ` Sven-Thorsten Dietrich
2005-06-11 16:19 ` Daniel Walker
2005-06-11 13:51 ` Ingo Molnar
2005-06-11 15:00 ` Mika Penttilä
2005-06-11 16:45 ` Sven-Thorsten Dietrich
2005-06-11 16:53 ` Mika Penttilä
2005-06-11 17:13 ` Daniel Walker
2005-06-11 17:22 ` Mika Penttilä
2005-06-11 17:25 ` Daniel Walker
2005-06-11 17:29 ` Mika Penttilä
2005-06-11 17:30 ` Daniel Walker
2005-06-11 17:55 ` Mika Penttilä
2005-06-11 16:28 ` Daniel Walker
2005-06-11 16:46 ` Esben Nielsen
2005-06-11 16:09 ` Daniel Walker
2005-06-11 16:31 ` Esben Nielsen
2005-06-11 16:51 ` Christoph Hellwig
2005-06-11 22:44 ` Ed Tomlinson
2005-06-12 6:23 ` Ingo Molnar
2005-06-12 9:28 ` Christoph Hellwig
2005-06-13 4:39 ` [RT] " Steven Rostedt
2005-06-16 5:35 ` Lee Revell
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=1118449247.27756.47.camel@dhcp153.mvista.com \
--to=dwalker@mvista.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=sdietrich@mvista.com \
--cc=simlo@phys.au.dk \
/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
all inboxes | Powered by JetHome®