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 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.