xfs
[Top] [All Lists]

Re: RT and XFS

To: Daniel Walker <dwalker@xxxxxxxxxx>
Subject: Re: RT and XFS
From: Ingo Molnar <mingo@xxxxxxx>
Date: Thu, 14 Jul 2005 07:23:48 +0200
Cc: Dave Chinner <dgc@xxxxxxx>, Nathan Scott <nathans@xxxxxxx>, Steve Lord <lord@xxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, linux-xfs@xxxxxxxxxxx
In-reply-to: <1121314226.14816.18.camel@c-67-188-6-232.hsd1.ca.comcast.net>
References: <1121209293.26644.8.camel@dhcp153.mvista.com> <20050713002556.GA980@frodo> <20050713064739.GD12661@elte.hu> <1121273158.13259.9.camel@c-67-188-6-232.hsd1.ca.comcast.net> <20050714002246.GA937@frodo> <20050714135023.E241419@melbourne.sgi.com> <1121314226.14816.18.camel@c-67-188-6-232.hsd1.ca.comcast.net>
Sender: linux-xfs-bounce@xxxxxxxxxxx
User-agent: Mutt/1.4.2.1i
* Daniel Walker <dwalker@xxxxxxxxxx> wrote:

> > The whole point of using a semaphore in the pagebuf is because there
> > is no tracking of who "owns" the lock so we can actually release it
> > in a different context. Semaphores were invented for this purpose,
> > and we use them in the way they were intended. ;)
> 
> Where is the that semaphore spec, is that posix ?  There is a new 
> construct called "complete" that is good for this type of stuff too. 
> No owner needed , just something running, and something waiting till 
> it completes.

wrt. posix, we dont really care about that for kernel-internal 
primitives like struct semaphore. So whether it's posix or not has no 
relevance.

wrt. 'struct completion' - completions should indeed be slightly faster 
for that particular purpose (IO completion, log transaction completion, 
etc.). [ And it's in no way a 'must have' change - these are problems 
introduced by PREEMPT_RT, and are solved within that patch. If upstream 
code decides to convert certain types of semaphore uses to completions, 
that will help -RT, but it's an opt-in process. ]

it's easy to test the semaphore usage that -RT doesnt like: just revert 
one of the 'struct compat_semaphore' declarations to 'struct semaphore', 
enable RT_DEADLOCK_DETECT, and create & mount an XFS partition and do 
some simple file ops on it. That was enough for me to trigger the 
warnings which prompted the compat_semaphore changes. You'll get a 
verbose lock trace whenever something outside of the -RT kernel's 
expecations happens.

        Ingo


<Prev in Thread] Current Thread [Next in Thread>