On Sun, Mar 26, 2000 at 01:21:09AM -0800, Daniel Schepler wrote:
> I recently tried to rebuild the Debian boot disks, and discovered that
> it consistently causes a hang at least with 2.3.99pre2 and later. I
> haven't tried it yet with earlier kernels.
Yeah, some other people have noticed this. I can reproduce it with a simple
test. I'm sure the blockdev and VFS gurus are aware of it, but they've been
strangely silent. I've had a quick look and am horribly confused. I tried
mapping out the bits of the call tree which looked relevant and got as far as
this ..
user app calls write(), etc.
sys_write
generic_file_write
__grab_cache_page
page_alloc
__alloc_pages
zone_balance_memory
try_to_free_pages
shrink_mmap
try_to_free_buffers
wakeup_bdflush(0 = don't block)
swap_out
block_prepare_write
create_empty_buffers
create_buffers(async)
run_task_queue(tq_disk)
wait_event(buffer_wait, ..)
ext2_get_block
ll_rw_block(loop dev owned bh)
wait_on_buffer(loop dev owned bh)
generic_commit_write
__block_commit_write
atomic_set_buffer_dirty
mark_dirty
balance_dirty
wakeup_bdflush(0 or 1)
.. and gave up :-) Maybe what I should really be doing is writing some
documentation as I go along which shows which functions are re-entrant and
which aren't.
-- If it's tourist season, why can't we shoot them?- 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 : Fri Mar 31 2000 - 21:00:17 EST