lkml.org 
[lkml]   [2001]   [May]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Linux-2.4.5
On Sat, May 26, 2001 at 12:22:59PM -0300, Rik van Riel wrote:
> On Sat, 26 May 2001, Andrea Arcangeli wrote:
>
> > @@ -1416,11 +1416,9 @@
> > */
> > run_task_queue(&tq_disk);
> >
> > - /*
> > - * Set our state for sleeping, then check again for buffer heads.
> > - * This ensures we won't miss a wake_up from an interrupt.
> > - */
> > - wait_event(buffer_wait, nr_unused_buffer_heads >= MAX_BUF_PER_PAGE);
> > + current->policy |= SCHED_YIELD;
> > + __set_current_state(TASK_RUNNING);
> > + schedule();
> > goto try_again;
> > }
>
> This cannot possibly fix the problem because this code is
> never reached.
>
> What was observed in the backtraces by arjan, ben, marcelo
> and people at IBM was:
>
> create_buffers -> get_unused_buffer_head -> __alloc_pages
>
> with the system looping infinitely in __alloc_pages. The
> code you are changing above ONLY gets reached in case the
> __alloc_pages (and thus, get_unused_buffer_head) returns
> failure.

Fine, then post the strict __alloc_pages patch, after that you will run
into the above code. Those are different issues, like I'm claiming since
the first place, your patch didn't addressed the above.

I definitely agree that if __alloc_pages itself deadlocks the above
cannot make differences.

Andrea
-
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 12:54    [W:0.577 / U:0.168 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site