• Hugh Dickins's avatar
    [PATCH] mm: tlb_finish_mmu forget rss · fc2acab3
    Hugh Dickins authored
    zap_pte_range has been counting the pages it frees in tlb->freed, then
    tlb_finish_mmu has used that to update the mm's rss.  That got stranger when I
    added anon_rss, yet updated it by a different route; and stranger when rss and
    anon_rss became mm_counters with special access macros.  And it would no
    longer be viable if we're relying on page_table_lock to stabilize the
    mm_counter, but calling tlb_finish_mmu outside that lock.
    
    Remove the mmu_gather's freed field, let tlb_finish_mmu stick to its own
    business, just decrement the rss mm_counter in zap_pte_range (yes, there was
    some point to batching the update, and a subsequent patch restores that).  And
    forget the anal paranoia of first reading the counter to avoid going negative
    - if rss does go negative, just fix that bug.
    
    Remove the mmu_gather's flushes and avoided_flushes from arm and arm26: no use
    was being made of them.  But arm26 alone was actually using the freed, in the
    way some others use need_flush: give it a need_flush.  arm26 seems to prefer
    spaces to tabs here: respect that.
    Signed-off-by: default avatarHugh Dickins <hugh@veritas.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    fc2acab3
tlb.c 3.08 KB