From: Mark Hounschell <markh@compro.net>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
Daniel Walker <dwalker@mvista.com>
Subject: Re: rt20 patch question
Date: Wed, 10 May 2006 09:06:03 -0400 [thread overview]
Message-ID: <4461E53B.7050905@compro.net> (raw)
In-Reply-To: <Pine.LNX.4.58.0605100827500.3282@gandalf.stny.rr.com>
Steven Rostedt wrote:
> (It is expected on LKML to not touch the CC list, and especially keep the
> one you are replying to)
>
Ok. I'm on so many it's hard to remember what each want.
> On Tue, 9 May 2006, Mark Hounschell wrote:
>
>> Daniel Walker wrote:
>>> On Tue, 2006-05-09 at 08:23 -0400, Mark Hounschell wrote:
>>>> Can I assume configuring 'Complete preemption' is the same as
>>>> configuring ('Voluntary preemption' + 'Hardirq' + 'Softirq' + default
>>>> proc settings)?
>>> Not Voluntary preemption, and I'm not sure what default proc settings is
>>> referring too .
>> The proc settings or boot options to enable or disable hardirq or
>> softirq threading that you have avaialable in Voluntary preemption.
>>
>>> Complete preemption is like CONFIG_PREEMPT and softirq
>>> and hardirq threading .. The preemption isn't voluntary, it's forced .
>>>
>> Complete preemption you have no choice of threading hard or soft irqs.
>> They are threaded.
>>
>> So If I config Voluntary preemption + Hardirq and Softirq threading and
>> do not disable hardirq or softirq via proc or boot cmdline, is that the
>> same as configuring Complete preemption?
>>
>
> No not at all.
>
> First Voluntary preemption means that when you are executing in the
> kernel, and a higher priority process needs to run, the kernel will _not_
> be preempted! Voluntary preemption means that there are places in the
> kernel that are marked as preemption points. So if you are in the kernel
> and you hit a preemption point, a check is made then to see if the
> scheduler should be called. So, really this is not a true preemptive
> kernel.
>
> Next you have "Preemptible Kernel (Low Latency Desktop)". This _is_ a
> preemptive kernel. Which means that, unless preemption is disabled, the
> default is to preempt a process whether or not it's in the kernel if
> either it finished it's run time, or a higher priority process wants to
> run. There is protective places in the kernel that disallow preemption
> (basically between spinlocks and preempt_enable/disable).
>
> But even with Preemptible Kernel + Hardirq and Softirq threading, you
> still don't have the same as complete preemption. This is because the
> full preemption turns the spinlocks into mutexes that are not only
> preemptible, but schedule on contention. To do this, Hard and Soft irqs
> must be threaded. This is because they use spinlocks, and to schedule
> in an interrupt, it must be acting as a thread. So you can't have full
> complete preemption without threading the Hard and Soft irqs, and that's
> why there is no option to not have them threaded.
>
> Without full preemption, you also lose out on having the PI for the
> spinlock mutexes.
>
> -- Steve
>
>
Thank you. That is exactly what I wanted to know. I ask because when I
run my app in complete preemption mode I have random periods where the
machine stops for many seconds at a time. Only in complete preemption
mode does this happen. In Voluntary and Preempt modes this does not
occure. I'm having a hard time trying to determine if the problem is in
my application.
Mark
next prev parent reply other threads:[~2006-05-10 13:06 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-09 12:23 rt20 patch question Mark Hounschell
2006-05-09 14:38 ` Daniel Walker
2006-05-09 14:58 ` Mark Hounschell
2006-05-09 15:53 ` Daniel Walker
2006-05-10 12:39 ` Steven Rostedt
2006-05-10 13:06 ` Mark Hounschell [this message]
2006-05-10 14:10 ` Steven Rostedt
2006-05-10 15:33 ` Mark Hounschell
2006-05-10 16:17 ` Steven Rostedt
2006-05-10 18:30 ` Mark Hounschell
2006-05-10 18:49 ` Steven Rostedt
2006-05-10 19:28 ` Mark Hounschell
2006-05-11 11:25 ` Mark Hounschell
2006-05-11 12:01 ` Steven Rostedt
2006-05-11 12:22 ` Steven Rostedt
2006-05-11 13:02 ` Mark Hounschell
2006-05-11 13:14 ` Steven Rostedt
2006-05-11 13:26 ` Mark Hounschell
2006-05-11 13:53 ` Steven Rostedt
2006-05-11 14:57 ` Mark Hounschell
2006-05-12 6:47 ` Steven Rostedt
2006-05-12 7:33 ` Sébastien Dugué
2006-05-12 8:18 ` Mark Hounschell
2006-05-12 9:08 ` Mark Hounschell
2006-05-12 9:20 ` Steven Rostedt
2006-05-10 20:33 ` Steven Rostedt
2006-05-12 8:16 ` Ingo Molnar
2006-05-12 8:45 ` Steven Rostedt
2006-05-12 9:16 ` Ingo Molnar
2006-05-12 9:21 ` Ingo Molnar
2006-05-12 12:38 ` Mark Hounschell
2006-05-12 13:18 ` Steven Rostedt
2006-05-12 13:38 ` Mark Hounschell
2006-05-12 13:43 ` Mark Hounschell
2006-05-12 14:05 ` Steven Rostedt
2006-05-12 14:36 ` Mark Hounschell
2006-05-12 14:51 ` Steven Rostedt
2006-05-12 13:16 ` 3c59x vortex_timer rt hack (was: rt20 patch question) Steven Rostedt
2006-05-12 13:36 ` Ingo Molnar
2006-05-12 13:46 ` Steven Rostedt
2006-05-12 14:16 ` Andrew Morton
2006-05-12 14:32 ` Steven Rostedt
2006-05-12 14:39 ` Steven Rostedt
2006-05-12 14:43 ` Ingo Molnar
2006-05-12 14:49 ` Andrew Morton
2006-05-12 15:04 ` Steven Rostedt
2006-05-12 16:53 ` 3c59x vortex_timer rt hack Mark Hounschell
2006-05-12 15:22 ` 3c59x vortex_timer rt hack (was: rt20 patch question) Steven Rostedt
2006-05-12 15:23 ` Andrew Morton
2006-05-12 15:36 ` Steven Rostedt
2006-05-12 16:03 ` Andrew Morton
2006-05-12 16:11 ` Steven Rostedt
2006-05-12 16:27 ` Andrew Morton
2006-05-12 16:38 ` Steven Rostedt
2006-05-10 18:45 ` rt20 patch question Steven Rostedt
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=4461E53B.7050905@compro.net \
--to=markh@compro.net \
--cc=dwalker@mvista.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rostedt@goodmis.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.