Re: [RFC] RT-patch update to remove the global pi_lock

Ingo Molnar
2005-08-25T19:33:39Z

* Steven Rostedt <rostedt@goodmis.org> wrote:

> > does the system truly lock up, or is this some transitional condition?
> > In any case, i agree that this should be debugged independently of the
> > pi_lock patch.
>
> Hmm, I forgot that you took out the bit_spin_lock fixes. I think this
> may be caused by them. I haven't look further into it yet.

yeah, i took them out because they clashed with upstream changes. Note
that i meanwhile also introduced a per-bh lock, which might make it
easier to fix the deadlock:

--- linux.orig/fs/buffer.c
+++ linux/fs/buffer.c
@@ -537,8 +537,7 @@ static void end_buffer_async_read(struct
* decide that the page is now completely done.
*/
first = page_buffers(page);
- local_irq_save(flags);
- bit_spin_lock(BH_Uptodate_Lock, &first->b_state);
+ spin_lock_irqsave(&first->b_uptodate_lock, flags);
clear_buffer_async_read(bh);
unlock_buffer(bh);
tmp = bh;

could jbd reuse this lock - or would it need another lock?

Ingo