Messages in this thread |  | | | From | Steve Dodd <> | | Date | Sun, 26 Mar 2000 12:34:19 +0100 | | Subject | Re: Loop driver UP deadlock? -- 2.3.99pre[23] |
| |
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/
|  |