lkml.org 
[lkml]   [2009]   [Nov]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 2/7] mmc: Don't use PF_MEMALLOC
    Sorry for the noise. 
    While I am typing, my mail client already send the mail. :(.
    This is genuine.

    KOSAKI Motohiro wrote:
    >> On Tue, 17 Nov 2009 16:17:50 +0900 (JST)
    >> KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> wrote:
    >>
    >>> Non MM subsystem must not use PF_MEMALLOC. Memory reclaim need few
    >>> memory, anyone must not prevent it. Otherwise the system cause
    >>> mysterious hang-up and/or OOM Killer invokation.
    >> So now what happens if we are paging and all our memory is tied up for
    >> writeback to a device or CIFS etc which can no longer allocate the memory
    >> to complete the write out so the MM can reclaim ?
    >
    > Probably my answer is not so simple. sorry.
    >
    > reason1: MM reclaim does both dropping clean memory and writing out dirty pages.

    Who write out dirty pages?
    If block driver can't allocate pages for flushing, It means VM can't reclaim
    dirty pages after all.

    > reason2: if all memory is exhausted, maybe we can't recover it. it is
    > fundamental limitation of Virtual Memory subsystem. and, min-watermark is
    > decided by number of system physcal memory, but # of I/O issue (i.e. # of
    > pages of used by writeback thread) is mainly decided # of devices.
    > then, we can't gurantee min-watermark is sufficient on any systems.
    > Only reasonable solution is mempool like reservation, I think.

    I think it's because mempool reserves memory.
    (# of I/O issue\0 is hard to be expected.
    How do we determine mempool size of each block driver?
    For example, maybe, server use few I/O for nand.
    but embedded system uses a lot of I/O.

    We need another knob for each block driver?

    I understand your point. but it's not simple.
    I think, for making sure VM's pages, block driver need to distinguish
    normal flush path and flush patch for reclaiming.
    So In case of flushing for reclaiming, block driver have to set PF_MEMALLOC.
    otherwise, it shouldn't set PF_MEMALLOC.


    > IOW, any reservation memory shouldn't share unrelated subsystem. otherwise
    > we lost any gurantee.
    >
    > So, I think we need to hear why many developer don't use mempool,
    > instead use PF_MEMALLOC.
    >
    >> Am I missing something or is this patch set not addressing the case where
    >> the writeback thread needs to inherit PF_MEMALLOC somehow (at least for
    >> the I/O in question and those blocking it)
    >
    > Yes, probably my patchset isn't perfect. honestly I haven't understand
    > why so many developer prefer to use PF_MEMALLOC.
    >
    >
    >
    > --
    > To unsubscribe, send a message with 'unsubscribe linux-mm' in
    > the body to majordomo@kvack.org. For more info on Linux MM,
    > see: http://www.linux-mm.org/ .
    > Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>



    \
     
     \ /
      Last update: 2009-11-17 13:53    [from the cache]
    ©2003-2011 Jasper Spaans