On 2010-06-16 07:11, Christoph Hellwig wrote: > On Wed, Jun 16, 2010 at 11:20:24AM +0900, KAMEZAWA Hiroyuki wrote: >> BTW, copy_from_user/copy_to_user is _real_ problem, I'm afraid following >> much more than memcg. >> >> handle_mm_fault() >> -> handle_pte_fault() >> -> do_wp_page() >> -> balance_dirty_page_rate_limited() >> -> balance_dirty_pages() >> -> writeback_inodes_wbc() >> -> writeback_inodes_wb() >> -> writeback_sb_inodes() >> -> writeback_single_inode() >> -> do_writepages() >> -> generic_write_pages() >> -> write_cache_pages() // use on-stack pagevec. >> -> writepage() > > Yes, this is a massive issue. Strangely enough I just wondered about > this callstack as balance_dirty_pages is the only place calling into the > per-bdi/sb writeback code directly instead of offloading it to the > flusher threads. It's something that should be fixed rather quickly > IMHO. write_cache_pages and other bits of this writeback code can use > quite large amounts of stack. I've had the same thought as well, bdp() should just signal a writeback instead. Much cleaner than doing cleaning from that point. -- Jens Axboe -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>