kmap() while holding spinlock

From: Anton Blanchard (anton@samba.org)
Date: Thu Jul 26 2001 - 15:12:19 EST


Hi,

I was debugging a lockup on sparc32 where we took a page_table_lock
in handle_mm_fault and then tried to take the same one again in
swap_out_mm. So it looks like we are scheduling somewhere inside
handle_mm_fault while holding the page_table_lock.

This machine might have highmem (Im awaiting more information). If
so copy_user_highpage and clear_user_highpage could sleep if we
run out of kmap entries. There are two problems:

do_anonymous_page calls clear_user_highpage with the page_table_lock held.

do_wp_page calls break_cow with the page_table_lock held.

Since I dont think we can drop the lock, do we need a kmap_atomic for
these?

Anton
-
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/



This archive was generated by hypermail 2b29 : Tue Jul 31 2001 - 21:00:25 EST