From: Steven Rostedt <rostedt@goodmis.org>
To: john cooper <john.cooper@timesys.com>
Cc: Mark Johnson <Mark_H_Johnson@RAYTHEON.COM>,
Ingo Molnar <mingo@elte.hu>, Amit Shah <amit.shah@codito.com>,
Karsten Wiese <annabellesgarden@yahoo.de>,
Bill Huey <bhuey@lnxw.com>, Adam Heath <doogie@debian.org>,
emann@mrv.com, Gunther Persoons <gunther_persoons@spymac.com>,
"K.R. Foley" <kr@cybsft.com>, LKML <linux-kernel@vger.kernel.org>,
Florian Schmidt <mista.tapas@gmx.net>,
Fernando Pablo Lopez-Lezcano <nando@ccrma.Stanford.EDU>,
Lee Revell <rlrevell@joe-job.com>,
Rui Nuno Capela <rncbc@rncbc.org>,
Shane Shrybman <shrybman@aei.ca>,
Esben Nielsen <simlo@phys.au.dk>,
Thomas Gleixner <tglx@linutronix.de>,
Michal Schmidt <xschmi00@stud.feec.vutbr.cz>
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm3-V0.7.32-6
Date: Sat, 11 Dec 2004 23:36:31 -0500 [thread overview]
Message-ID: <1102826191.3691.44.camel@localhost.localdomain> (raw)
In-Reply-To: <41BB2785.7020006@timesys.com>
On Sat, 2004-12-11 at 11:59 -0500, john cooper wrote:
> Steven Rostedt wrote:
>
> > [RFC] Has there been previously any thought of adding priority
> > inheriting wait queues. With the IRQs that run as threads, have hooks in
> > the code that allows a driver or socket layer to attach a thread to a
> > wait queue, and when a RT priority task waits on the queue, a function
> > is call to increase (if needed) the priority of the attached thread. I
> > know that this would take some work, and would make the normal kernel
> > and RT diverge more, but it would really help to solve the problem of a
> > high priority process waiting for an interrupt that can be starved by
> > other high priority processes.
>
> I think there are two issues here. One being as above which
> addresses allowing the server thread to compete for CPU time
> at a priority equal to its highest waiting client. Essentially
> the server needs no inherent priority of its own, rather its
> priority is automatically inherited. The semantics seem
> straightforward even in the general case of servers themselves
> becoming clients of other servers.
>
I agree with you on this.
> Another issue is the fact the server thread is effectively
> non-preemptive. Otherwise a newly arrived waiter of priority
> higher than a client currently being serviced would receive
> immediate attention. One problem to be solved here is how to
> save/restore client context when a "context switch" is required.
I don't quite understand your point here.
Say you have process A at prio 20 that waits on a queue with server S. S
becomes prio 20 and starts to run. Then it is preempted by process B at
prio 30 which then comes to wait on the server's queue. Server S becomes
prio 30 and finishes process A's work, then checks the queue again and
finds process B and starts working on process B's work still at prio 30.
The time of process B is still bounded (predictable).
So it's similar to a mutex and priority inheritance. We can look at
process A taking lock L and then when process B blocks on lock L,
process A inherits process B's priority (B being greater prio than A).
The difference is that the work is being done within a mutex as suppose
to a server. The work to keep track of what priorities are being
inherited is even easier than mutexs, since you have a process (the
server) to just point to which process it has inherited, and a wait
queue to store which process needs to be inherited next when the server
wakes up the currently inherited process.
-- Steve
next prev parent reply other threads:[~2004-12-12 4:36 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-09 18:10 [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm3-V0.7.32-6 Mark_H_Johnson
2004-12-09 19:40 ` Ingo Molnar
2004-12-09 19:58 ` Ingo Molnar
2004-12-10 23:42 ` Steven Rostedt
2004-12-11 16:59 ` john cooper
2004-12-12 4:36 ` Steven Rostedt [this message]
2004-12-13 23:45 ` john cooper
2004-12-14 13:01 ` Steven Rostedt
2004-12-14 14:28 ` john cooper
2004-12-14 16:53 ` Steven Rostedt
2004-12-11 17:59 ` Esben Nielsen
2004-12-11 18:59 ` Steven Rostedt
2004-12-11 19:50 ` Esben Nielsen
2004-12-11 22:34 ` Steven Rostedt
2004-12-13 21:55 ` Bill Huey
2004-12-13 22:15 ` Steven Rostedt
2004-12-13 22:20 ` Ingo Molnar
2004-12-13 22:31 ` Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2004-12-13 14:10 Mark_H_Johnson
2004-12-09 21:58 Mark_H_Johnson
2004-12-09 22:55 ` Ingo Molnar
2004-12-09 20:49 Mark_H_Johnson
2004-12-09 21:56 ` Ingo Molnar
2004-12-09 20:38 Mark_H_Johnson
2004-12-09 19:54 Mark_H_Johnson
2004-12-09 19:23 Mark_H_Johnson
2004-12-09 20:04 ` Ingo Molnar
2004-12-10 5:01 ` Bill Huey
2004-12-10 5:14 ` Steven Rostedt
2004-12-10 5:58 ` Bill Huey
2004-12-09 18:15 Mark_H_Johnson
2004-12-09 20:11 ` Ingo Molnar
2004-12-09 17:22 Mark_H_Johnson
2004-12-09 17:31 ` Ingo Molnar
2004-12-09 20:34 ` K.R. Foley
2004-12-09 22:06 ` Ingo Molnar
2004-12-09 23:16 ` K.R. Foley
2004-12-10 4:26 ` K.R. Foley
2004-12-10 11:22 ` Ingo Molnar
2004-12-10 15:26 ` K.R. Foley
2004-12-09 16:56 Mark_H_Johnson
2004-12-09 17:28 ` Ingo Molnar
2004-12-09 17:41 ` Ingo Molnar
2004-12-09 18:26 ` Ingo Molnar
2004-12-09 19:04 ` Esben Nielsen
2004-12-09 19:58 ` john cooper
2004-12-09 20:16 ` Lee Revell
2004-12-09 15:16 Mark_H_Johnson
2004-12-09 16:17 ` Florian Schmidt
2004-12-09 17:13 ` Ingo Molnar
2004-12-09 14:46 Mark_H_Johnson
2004-12-09 14:14 Mark_H_Johnson
2004-12-07 21:41 Mark_H_Johnson
2004-11-16 13:09 [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm1-V0.7.27-1 Ingo Molnar
2004-11-16 13:40 ` [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm1-V0.7.27-3 Ingo Molnar
2004-11-17 12:42 ` [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm1-V0.7.28-0 Ingo Molnar
2004-11-18 12:35 ` [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm1-V0.7.28-1 Ingo Molnar
2004-11-18 16:46 ` [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm2-V0.7.29-0 Ingo Molnar
2004-11-22 0:54 ` [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm2-V0.7.30-2 Ingo Molnar
2004-11-23 17:58 ` [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm2-V0.7.30-9 Ingo Molnar
2004-11-24 10:16 ` [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm2-V0.7.30-10 Ingo Molnar
2004-12-03 20:58 ` [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm2-V0.7.32-0 Ingo Molnar
2004-12-07 13:29 ` [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm3-V0.7.32-4 Ingo Molnar
2004-12-07 14:11 ` [patch] Real-Time Preemption, -RT-2.6.10-rc2-mm3-V0.7.32-6 Ingo Molnar
2004-12-08 4:31 ` K.R. Foley
2004-12-08 8:34 ` Ingo Molnar
2004-12-08 16:07 ` K.R. Foley
2004-12-08 16:18 ` Lee Revell
2004-12-08 16:52 ` K.R. Foley
2004-12-08 16:58 ` Lee Revell
2004-12-09 9:02 ` Ingo Molnar
2004-12-09 2:45 ` K.R. Foley
2004-12-09 12:11 ` Ingo Molnar
2004-12-09 14:50 ` K.R. Foley
2004-12-08 17:13 ` Steven Rostedt
2004-12-08 18:14 ` Rui Nuno Capela
2004-12-08 19:03 ` Steven Rostedt
2004-12-08 21:39 ` Rui Nuno Capela
2004-12-08 22:11 ` Steven Rostedt
2004-12-09 9:32 ` Ingo Molnar
2004-12-09 13:36 ` Steven Rostedt
2004-12-09 9:06 ` Ingo Molnar
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=1102826191.3691.44.camel@localhost.localdomain \
--to=rostedt@goodmis.org \
--cc=Mark_H_Johnson@RAYTHEON.COM \
--cc=amit.shah@codito.com \
--cc=annabellesgarden@yahoo.de \
--cc=bhuey@lnxw.com \
--cc=doogie@debian.org \
--cc=emann@mrv.com \
--cc=gunther_persoons@spymac.com \
--cc=john.cooper@timesys.com \
--cc=kr@cybsft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mista.tapas@gmx.net \
--cc=nando@ccrma.Stanford.EDU \
--cc=rlrevell@joe-job.com \
--cc=rncbc@rncbc.org \
--cc=shrybman@aei.ca \
--cc=simlo@phys.au.dk \
--cc=tglx@linutronix.de \
--cc=xschmi00@stud.feec.vutbr.cz \
/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