On Tue, Jun 15, 2010 at 10:04:24AM -0400, Rik van Riel wrote: > On 06/15/2010 09:59 AM, Mel Gorman wrote: >> On Tue, Jun 15, 2010 at 09:34:18AM -0400, Rik van Riel wrote: >>> On 06/15/2010 07:45 AM, Mel Gorman wrote: > >>>>>> >>>>>> +/* kswapd and memcg can writeback as they are unlikely to overflow stack */ >>>>>> +static inline bool reclaim_can_writeback(struct scan_control *sc) >>>>>> +{ >>>>>> + return current_is_kswapd() || sc->mem_cgroup != NULL; >>>>>> +} > >>> If direct reclaim can overflow the stack, so can direct >>> memcg reclaim. That means this patch does not solve the >>> stack overflow, while admitting that we do need the >>> ability to get specific pages flushed to disk from the >>> pageout code. >>> >> >> What path is taken with memcg != NULL that could overflow the stack? I >> couldn't spot one but mm/memcontrol.c is a bit tangled so finding all >> its use cases is tricky. The critical path I had in mind though was >> direct reclaim and for that path, memcg == NULL or did I miss something? > > mem_cgroup_hierarchical_reclaim -> try_to_free_mem_cgroup_pages > But in turn, where is mem_cgroup_hierarchical_reclaim called from direct reclaim? It appears to be only called from the fault path or as a result of the memcg changing size. -- Mel Gorman Part-time Phd Student Linux Technology Center University of Limerick IBM Dublin Software Lab -- 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>