[lkml]   [2012]   [Feb]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH next] memcg: fix deadlock by avoiding stat lock when anon
    On Wed, 29 Feb 2012, Johannes Weiner wrote:
    > Saving the begin/end_update_page_stat() calls for the anon case where
    > we know in advance we don't need them is one thing, but this also
    > hides a dependencies that even eludes lockdep behind what looks like a
    > minor optimization of the anon case.

    Sounds like you'd appreciate a comment there: akpm has not put
    this version in yet, so I'll send an updated version shortly.

    > Wouldn't this be more robust if we turned the ordering inside out in
    > move_account instead?

    I think we need more than the one user of this infrastructure before
    that can be decided.

    But I didn't actually consider that at all: perhaps prejudiced by the
    way I had solved the race Konstantin pointed out in my patchset of 10
    last week, by using the lruvec lock for move_lock_mem_cgroup too,
    which fits with it being inside the page_cgroup lock.

    Hmm, I notice move_lock_mem_cgroup is likewise spin_lock_irqsave:
    if it needs to be (and I guess the idea is that it doesn't need to be
    today, but for generality later on had better be), then it has to be
    inside page_cgroup lock.

    (If FILE_MAPPED were to be the only user of the infrastructure, I'd
    actually prefer to remove the begin/end, and make move_account raise
    the file page's mapcount temporarily, doing its own page_remove_rmap
    after, to solve these races. There's probably one or two VM_BUG_ONs
    elsewhere that would need deleting to make that completely safe.
    But I understand there may be more users to come - and mapcount
    games might not fit your desire for robustness.)


     \ /
      Last update: 2012-03-01 02:21    [W:0.021 / U:9.188 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site