On Thu, Jul 14, 2011 at 01:46:34PM +0900, KAMEZAWA Hiroyuki wrote: > > XFS and btrfs already disable writeback from memcg context, as does ext4 > > for the typical non-overwrite workloads, and none has fallen apart. > > > > In fact there's no way we can enable them as the memcg calling contexts > > tend to have massive stack usage. > > > > Hmm, XFS/btrfs adds pages to radix-tree in deep stack ? We're using a fairly deep stack in normal buffered read/write, wich is almost 100% common code. It's not just the long callchain (see below), but also that we put the unneeded kiocb and a vector of I/O vects on the stack: vfs_writev do_readv_writev do_sync_write generic_file_aio_write __generic_file_aio_write generic_file_buffered_write generic_perform_write block_write_begin grab_cache_page_write_begin add_to_page_cache_lru add_to_page_cache add_to_page_cache_locked mem_cgroup_cache_charge this might additionally come from in-kernel callers like nfsd, which has even more stack space used. And at this point we only enter the memcg/reclaim code, which last time I had a stack trace ate up another about 3k of stack space. _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs