[lkml]   [2011]   [Jan]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 24/32] dlm: dlm workqueues aren't used in memory reclaim path

    On Mon, Jan 03, 2011 at 02:39:19PM +0000, Steven Whitehouse wrote:
    > No, the issue arises in case an inode is being ejected from cache with a
    > 0 link count (and this need deallocation). At this point the dlm is
    > required in order to coordinate which node will perform the
    > deallocation, but if it blocks on memory reclaim (via the fs, so
    > GFP_NOFS is ok, but GFP_KERNEL is not) then it can land up calling back
    > into the fs via a shrink of the dcache which can potentially then also
    > call back into the dlm.

    I see. Thanks for the explanation.

    > Since there is no workqueue option to indicate that GFP_NOFS is ok, but
    > GFP_KERNEL is not, I think in the workqueue case we must mark it as
    > WQ_MEM_RECLAIM. So far as I can tell thats a limitation of task creation
    > which was the reason for the pre-allocated rescuer thread. I'd rather be
    > safe than sorry in this case,

    Yeap, in such case, WQ_MEM_RECLAIM seems like the right choice. It
    may call into GFP_KERNEL path again, but the dependency chain isn't
    hard. It will be broken pretty soon and rescuer will kick in.

    As the case is rather special, it might be a good idea to explain why
    WQ_MEM_RECLAIM is necessary for future references?

    Thank you.


     \ /
      Last update: 2011-01-03 15:57    [W:0.023 / U:0.188 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site