From: john cooper <john.cooper@timesys.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: "Bill Huey (hui)" <bhuey@lnxw.com>,
Esben Nielsen <simlo@phys.au.dk>,
linux-kernel@vger.kernel.org,
john cooper <john.cooper@timesys.com>
Subject: Re: Priority Inheritance Test (Real-Time Preemption)
Date: Mon, 22 Nov 2004 20:19:38 -0500 [thread overview]
Message-ID: <41A2902A.5050308@timesys.com> (raw)
In-Reply-To: <20041122152452.GA2036@elte.hu>
Ingo Molnar wrote:
> * john cooper <john.cooper@timesys.com> wrote:
>
>
>>I'd hazard a guess the reason existing implementations do not do this
>>type of dependency-chain closure is the complexity of a general
>>approach. [...]
>
>
> please take a look at the latest patch, it is i believe handling all the
> cases correctly. It certainly appears to solve the cases uncovered by
> pi_test.
Yes I see where you are walking the dependency chain
in pi_setprio(). But this is under the global spinlock
'pi_lock'.
My earlier comment was of the difficulty to establish fine
grained locking, ie: per-mutex to synchronize mutex
ownership/waiter lists and per task to synchronize
the list maintaining mutexes owned by task. While this
arguably scales better in an SMP environment, there are
issues of mutex traversal sequence during PI which lead
to deadlock scenarios. Though I believe there are
reasonable constraints placed on application mutex
acquisition order which side step this problem.
In the current design pi_lock has scope protecting all
mutex waiter lists (rooted either in mutex or owning task),
as well as per-mutex owner(s). The result of this is
pi_lock must be speculatively acquired before altering
any of the above lists/data regardless whether a PI
scenario is encountered. The behavior looks correct to
my reading. However I'd offer there is more concurrency
possible in this design.
-john
--
john.cooper@timesys.com
next prev parent reply other threads:[~2004-11-23 1:28 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-11-21 20:29 Priority Inheritance Test (Real-Time Preemption) Esben Nielsen
2004-11-22 0:27 ` Ingo Molnar
2004-11-23 13:34 ` Ingo Molnar
2004-11-23 15:47 ` Esben Nielsen
2004-11-23 23:03 ` Esben Nielsen
2004-11-24 3:42 ` Ingo Molnar
2004-11-24 7:51 ` Ingo Molnar
2004-11-24 8:07 ` Ingo Molnar
2004-11-24 8:33 ` Esben Nielsen
2004-11-24 9:55 ` Ingo Molnar
2004-11-24 10:18 ` Ingo Molnar
2004-11-25 15:46 ` Esben Nielsen
2004-11-25 16:58 ` Ingo Molnar
2004-11-25 16:08 ` Esben Nielsen
2004-11-25 17:14 ` Ingo Molnar
2004-11-25 22:08 ` Esben Nielsen
2004-11-26 1:08 ` Ingo Molnar
2004-11-26 0:34 ` Ingo Molnar
2004-11-26 0:37 ` Ingo Molnar
2004-11-26 8:52 ` Esben Nielsen
2004-11-26 16:26 ` Esben Nielsen
2004-11-26 20:41 ` Ingo Molnar
2004-11-26 21:05 ` Ingo Molnar
2004-11-27 23:05 ` Esben Nielsen
2004-11-28 8:42 ` Ingo Molnar
2004-11-28 15:55 ` Esben Nielsen
2004-11-29 9:59 ` Ingo Molnar
2004-11-29 15:07 ` Esben Nielsen
2004-11-29 15:56 ` Ingo Molnar
2004-11-29 15:57 ` Ingo Molnar
2004-11-29 16:50 ` Esben Nielsen
2004-11-30 8:49 ` Ingo Molnar
2004-11-22 9:23 ` Bill Huey
2004-11-22 12:37 ` Ingo Molnar
2004-11-22 21:25 ` Bill Huey
2004-11-22 14:16 ` john cooper
2004-11-22 15:24 ` Ingo Molnar
2004-11-23 1:19 ` john cooper [this message]
2004-11-23 8:13 ` Esben Nielsen
2004-11-23 9:21 ` Ingo Molnar
2004-11-22 21:30 ` Bill Huey
2004-11-23 1:34 ` john cooper
2004-11-22 16:12 ` Esben Nielsen
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=41A2902A.5050308@timesys.com \
--to=john.cooper@timesys.com \
--cc=bhuey@lnxw.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--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