lkml.org 
[lkml]   [2004]   [Oct]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [patch] Real-Time Preemption, -RT-2.6.9-rc4-mm1-U9
Ingo Molnar writes:
>
> * Gunther Persoons <gunther_persoons@spymac.com> wrote:
>
> > The kernel booted now with my firewire card plugged in. However when i
> > try to mount my reiser4 partition i get following error
> >
> > BUG: semaphore recursion deadlock detected!
> > .. current task mount/10514 is already holding ccb5bb4c.
>
> > [<c0344760>] down_write+0x103/0x1a6 (48)
> > [<d0b26a08>] kcond_wait+0xaa/0xac [reiser4] (36)
> > [<d0b280b0>] start_ktxnmgrd+0x98/0x9a [reiser4] (36)
> > [<d0b33716>] reiser4_fill_super+0x3b/0x71 [reiser4] (28)
> > [<d0b2d569>] reiser4_get_sb+0x2f/0x33 [reiser4] (68)
> > [<c016061a>] do_kern_mount+0x4f/0xc0 (4)
> > [<c0175945>] do_new_mount+0x9c/0xe1 (36)
> > [<c0175feb>] do_mount+0x145/0x194 (44)
> > [<c0176459>] sys_mount+0x9f/0xe0 (32)
> > [<c01060b1>] sysenter_past_esp+0x52/0x71 (44)
>
> reiser4 has some pretty ugly locking abstraction called kcond, i took a

It's fairly standard condition variable.

> look but it doesnt seem simple to convert it. Reiserfs should really use
> a normal Linux waitqueue and nothing more...

Why? Condition variable is very well known and widely used concept. In
the area of their applicability (where predicate whose change is waited
upon is protected by a single lock) they provide clean and easily
recognizable synchronization device.

Real problem in this case is failure of "semaphore deadlock detection"
to cope with perfectly legal semaphore usage (down() by thread T1, up()
by thread T2). As one possible solution kcond can be re-written on top
of beloved "normal Linux waitqueue".

Nikita.

>
> Ingo

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:07    [from the cache]
©2003-2011 Jasper Spaans