lkml.org 
[lkml]   [2010]   [Jun]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 12/12] vmscan: Do not writeback pages in direct reclaim
    On Tue, Jun 15, 2010 at 09:34:18AM -0400, Rik van Riel wrote:
    > On 06/15/2010 07:45 AM, Mel Gorman wrote:
    >> On Mon, Jun 14, 2010 at 05:55:51PM -0400, Rik van Riel wrote:
    >>> On 06/14/2010 07:17 AM, Mel Gorman wrote:
    >>>
    >>>> diff --git a/mm/vmscan.c b/mm/vmscan.c
    >>>> index 4856a2a..574e816 100644
    >>>> --- a/mm/vmscan.c
    >>>> +++ b/mm/vmscan.c
    >>>> @@ -372,6 +372,12 @@ int write_reclaim_page(struct page *page, struct address_space *mapping,
    >>>> return PAGE_SUCCESS;
    >>>> }
    >>>>
    >>>> +/* 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;
    >>>> +}
    >>>> +
    >>>
    >>> I'm not entirely convinced on this bit, but am willing to
    >>> be convinced by the data.
    >>>
    >>
    >> Which bit?
    >>
    >> You're not convinced that kswapd should be allowed to write back?
    >> You're not convinced that memcg should be allowed to write back?
    >> You're not convinced that direct reclaim writing back pages can overflow
    >> the stack?
    >
    > 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?

    --
    Mel Gorman
    Part-time Phd Student Linux Technology Center
    University of Limerick IBM Dublin Software Lab


    \
     
     \ /
      Last update: 2010-06-15 16:01    [W:4.083 / U:1.252 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site