All of lore.kernel.org
 help / color / mirror / Atom feed
From: john cooper <john.cooper@timesys.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Mark_H_Johnson@raytheon.com,
	Karsten Wiese <annabellesgarden@yahoo.de>,
	Bill Huey <bhuey@lnxw.com>, Adam Heath <doogie@debian.org>,
	"K.R. Foley" <kr@cybsft.com>,
	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>,
	Thomas Gleixner <tglx@linutronix.de>,
	Michal Schmidt <xschmi00@stud.feec.vutbr.cz>,
	john cooper <john.cooper@timesys.com>
Subject: Re: [patch] Real-Time Preemption, -RT-2.6.10-rc1-mm2-V0.7.1
Date: Thu, 04 Nov 2004 18:25:29 -0500	[thread overview]
Message-ID: <418ABA69.6090205@timesys.com> (raw)
In-Reply-To: <20041104194416.GC10107@elte.hu>

Ingo Molnar wrote:
> * john cooper <john.cooper@timesys.com> wrote:
> 
> 
>>>plus there's the 'priority inheritance dependency-chain closure' bug
>>>noticed by John Cooper - that should only affect the latency of RT 
>>>tasks though.
>>
>>This is a fairly gnarly problem to address.  The obvious solution is
>>to hold spinlocks in the mutexes as the dependency tree is atomically
>>traversed.  However this will deadlock under MP due to the
>>unpredictable order of mutexes traversed.  If the dependency chain is
>>not traversed (and semantics applied) atomically, races exist which
>>cause promotion decisions to be made on [now] stale data.
> 
> 
> is the order of locks in the dependency chain really unpredictable? If
> two chain walkers get two locks in opposite order, doesnt that mean that
> the lock ordering (as attempted by the blocked tasks) is deadlock-prone
> already? I.e. this scenario should not happen.

There does appear to be hope here.  If the per-task mutex ownership
list is maintained in strict order of acquisition sequence and
reader-mutex acquisition sequence is policed this would seem to remove
the possibly of chain traversal deadlock.

As an implementation note, single-owner hard spinlocks seem
excessive for the chain walk.  An approach allowing maximum
concurrency during traversal would be a reader-reference acquired
per node during the walk which would need to upgrade to an exclusive
writer-reference to effect promotion (waiter list priority reorder),
and then downgrade to a reader-reference to continue the traversal.

-john


-- 
john.cooper@timesys.com

  reply	other threads:[~2004-11-04 23:06 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-04 16:22 [patch] Real-Time Preemption, -RT-2.6.10-rc1-mm2-V0.7.1 Mark_H_Johnson
2004-11-04 16:30 ` Ingo Molnar
2004-11-04 16:32   ` Ingo Molnar
2004-11-04 18:59     ` john cooper
2004-11-04 19:44       ` Ingo Molnar
2004-11-04 23:25         ` john cooper [this message]
2004-11-05 21:42         ` Scott Wood
2004-11-05 22:36           ` Bill Huey
2004-11-08 14:35             ` Esben Nielsen
2004-11-08 15:42               ` Ingo Molnar
2004-11-08 22:47               ` Bill Huey
2004-11-06  7:42           ` Ingo Molnar
  -- strict thread matches above, loose matches on Subject: below --
2004-11-04 19:39 Mark_H_Johnson
2004-11-04 19:52 ` Ingo Molnar
2004-11-04 17:52 Mark_H_Johnson
2004-11-04 16:53 Mark_H_Johnson
2004-11-04 16:04 Mark_H_Johnson
2004-11-04 16:13 ` Ingo Molnar
2004-11-04 16:17 ` Ingo Molnar
2004-11-04 15:02 Mark_H_Johnson
2004-11-04 15:16 ` Ingo Molnar
2004-11-04 15:19   ` Ingo Molnar
2004-11-03 20:40 Mark_H_Johnson
2004-11-03 18:24 Mark_H_Johnson
2004-10-18 14:50 [patch] Real-Time Preemption, -RT-2.6.9-rc4-mm1-U5 Ingo Molnar
2004-10-19 12:46 ` [patch] Real-Time Preemption, -RT-2.6.9-rc4-mm1-U6 Ingo Molnar
2004-10-19 18:00   ` [patch] Real-Time Preemption, -RT-2.6.9-rc4-mm1-U7 Ingo Molnar
2004-10-20  9:45     ` [patch] Real-Time Preemption, -RT-2.6.9-rc4-mm1-U8 Ingo Molnar
2004-10-21 13:27       ` [patch] Real-Time Preemption, -RT-2.6.9-rc4-mm1-U9 Ingo Molnar
2004-10-22 13:35         ` [patch] Real-Time Preemption, -RT-2.6.9-rc4-mm1-U9.3 Ingo Molnar
2004-10-22 15:50           ` [patch] Real-Time Preemption, -RT-2.6.9-mm1-U10 Ingo Molnar
2004-10-22 17:56             ` [patch] Real-Time Preemption, -RT-2.6.9-mm1-U10.2 Ingo Molnar
2004-10-25 10:40               ` [patch] Real-Time Preemption, -RT-2.6.9-mm1-V0 Ingo Molnar
2004-10-27  0:15                 ` [patch] Real-Time Preemption, -RT-2.6.9-mm1-V0.3 Ingo Molnar
2004-11-03 10:58                   ` [patch] Real-Time Preemption, -RT-2.6.10-rc1-mm2-V0.7.1 Ingo Molnar
2004-11-03 13:44                     ` Lorenzo Allegrucci
2004-11-03 13:46                       ` Ingo Molnar
2004-11-03 17:53                         ` Lorenzo Allegrucci
2004-11-03 20:41                           ` Lorenzo Allegrucci
2004-11-03 20:43                             ` Ingo Molnar
2004-11-03 21:05                               ` Lorenzo Allegrucci
2004-11-03 19:33                     ` john cooper
2004-11-03 23:03                     ` Magnus Naeslund(t)
2004-11-04  6:56                       ` Ingo Molnar
2004-11-04 19:34                     ` Gunther Persoons
2004-11-04 20:31                       ` Chris Friesen

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=418ABA69.6090205@timesys.com \
    --to=john.cooper@timesys.com \
    --cc=Mark_H_Johnson@raytheon.com \
    --cc=annabellesgarden@yahoo.de \
    --cc=bhuey@lnxw.com \
    --cc=doogie@debian.org \
    --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=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.