On Tue, 22 Feb 2000, Andrea Arcangeli wrote:
> On Tue, 22 Feb 2000, Ingo Molnar wrote:
>
> >[..] do a 'b_count++; schedule(); b_count--; goto repeat;'
> >and everything should be fine. [..]
>
> unless browsing the whole list takes more than the task timeslice (around
> 10msec with a reniced +20 task). With 2giga in buffer cache 10msec of
> latnecy are realistic. If that will happen what you suggested above will
> cause the task to hang forever in R state.
>
> Also after the b_count-- you can process the bh. You should "goto repeat"
> only after processing the bh. Just like what I am doing in 2.3.47 in
> invalidate_buffers/set_blocksize.
>
I fixed the buffer.c code according to Ingo and removed a
conditional_schedule from mark_buffer_clean in fs.h as spotted by Andrea.
I have been testing for over 18hrs and no stuck processes yet.
Now to make more robust, there appear to be 2 remaining problems:
1) goto repeat only after processing the bh in buffer.c.
2) fix inode bug.
Correct?
Any easier way to fix 2) than back porting 2.3 changes?
Wm
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Wed Feb 23 2000 - 21:00:33 EST