Messages in this thread |  | | Date | Sat, 26 May 2001 12:22:59 -0300 (BRST) | From | Rik van Riel <> | Subject | Re: Linux-2.4.5 |
| |
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.
Rik -- Virtual memory is like a game you can't win; However, without VM there's truly nothing to lose...
http://www.surriel.com/ http://distro.conectiva.com/
Send all your spam to aardvark@nl.linux.org (spam digging piggy)
- 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/
|  |