[lkml]   [2006]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [Q] missing unused dentry in prune_dcache()?
    David Howells wrote:
    > Vasily Averin <> wrote:
    >> Therefore I've removed break of cycle and insert this dentry to head of the
    >> list. Theoretically it can lead to the second using of the same dentry,
    >> however I do not think that it is a big problem.
    > Hmmm... Or maybe it could be a problem. If whenever we find the dentry we
    > stick it back on the head of the list, this could be a problem as we're
    > traversing the list from tail to head.

    I still do not think that it could be a problem:
    count argument of prune_dcache is 128 if prune_dcache is called from
    shrink_dcache_memory() function and even lesser if prune_dcache is called from
    shrink_dcache_parent() function. I think usually the size of unused_dentry list
    (nr_usnused) is much greater and may be compared with these values only in case
    of very hard memory shortage. From my point of view it is very rare situation
    and I even not sure that it can really happen at all.

    However even if this situation will happen I do not see here any seriously
    troubles: Yes, we will try to free the same dentries, much probably without
    success again, but why it is bad in case of hard memory shortage?

    If my arguments are not convincing, I can protect second use of the same dentry:
    we can compare counter of the skipped dentries with nr_unused value.

    And what the alternatives we have?
    1) We can move this dentry to end of list? But it is bad because it will prevent
    2) we can move these dentries into some temporal list, and insert it back to
    unused_list later? But it is bad because of we can be rescheduled and drop
    dcache_lock and may confuse someone who will assume that these dentries are in

    Therefore I believe that my patch is optimal solution.

    Thank you,
    Vasily Averin
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2006-10-27 10:09    [W:0.026 / U:5.036 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site