lkml.org 
[lkml]   [2009]   [Nov]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 4/7] nandsim: Don't use PF_MEMALLOC
    KOSAKI Motohiro wrote:
    >> KOSAKI Motohiro wrote:
    >>> Hi
    >>>
    >>> Thank you for this useful comments.
    >>>
    >>>>> I vaguely remember Adrian (CCed) did this on purpose. This is for the
    >>>>> case when nandsim emulates NAND flash on top of a file. So there are 2
    >>>>> file-systems involved: one sits on top of nandsim (e.g. UBIFS) and the
    >>>>> other owns the file which nandsim uses (e.g., ext3).
    >>>>>
    >>>>> And I really cannot remember off the top of my head why he needed
    >>>>> PF_MEMALLOC, but I think Adrian wanted to prevent the direct reclaim
    >>>>> path to re-enter, say UBIFS, and cause deadlock. But I'd thing that all
    >>>>> the allocations in vfs_read()/vfs_write() should be GFP_NOFS, so that
    >>>>> should not be a probelm?
    >>>>>
    >>>> Yes it needs PF_MEMALLOC to prevent deadlock because there can be a
    >>>> file system on top of nandsim which, in this case, is on top of another
    >>>> file system.
    >>>>
    >>>> I do not see how mempools will help here.
    >>>>
    >>>> Please offer an alternative solution.
    >>> I have few questions.
    >>>
    >>> Can you please explain more detail? Another stackable filesystam
    >>> (e.g. ecryptfs) don't have such problem. Why nandsim have its issue?
    >>> What lock cause deadlock?
    >> The file systems are not stacked. One is over nandsim, which nandsim
    >> does not know about because it is just a lowly NAND device, and, with
    >> the file cache option, one file system below to provide the file cache.
    >>
    >> The deadlock is the kernel writing out dirty pages to the top file system
    >> which writes to nandsim which writes to the bottom file system which
    >> allocates memory which causes dirty pages to be written out to the top
    >> file system, which tries to write to nandsim => deadlock.
    >
    > You mean you want to prevent pageout() instead reclaim itself?

    Yes

    > Dropping filecache seems don't make recursive call, right?

    Yes



    \
     
     \ /
      Last update: 2009-11-25 08:17    [W:5.934 / U:0.500 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site