mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
mm: munlock: batch NR_MLOCK zone state updates
Depending on previous batch which introduced batched isolation in munlock_vma_range(), we can batch also the updates of NR_MLOCK page stats. After the whole pagevec is processed for page isolation, the stats are updated only once with the number of successful isolations. There were however no measurable perfomance gains. Signed-off-by: Vlastimil Babka <[email protected]> Reviewed-by: Jörn Engel <[email protected]> Acked-by: Mel Gorman <[email protected]> Cc: Michel Lespinasse <[email protected]> Cc: Hugh Dickins <[email protected]> Cc: Rik van Riel <[email protected]> Cc: Johannes Weiner <[email protected]> Cc: Michal Hocko <[email protected]> Cc: Vlastimil Babka <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
7225522bb4
commit
1ebb7cc6a5
1 changed files with 3 additions and 3 deletions
|
|
@ -241,6 +241,7 @@ static void __munlock_pagevec(struct pagevec *pvec, struct zone *zone)
|
|||
{
|
||||
int i;
|
||||
int nr = pagevec_count(pvec);
|
||||
int delta_munlocked = -nr;
|
||||
|
||||
/* Phase 1: page isolation */
|
||||
spin_lock_irq(&zone->lru_lock);
|
||||
|
|
@ -251,9 +252,6 @@ static void __munlock_pagevec(struct pagevec *pvec, struct zone *zone)
|
|||
struct lruvec *lruvec;
|
||||
int lru;
|
||||
|
||||
/* we have disabled interrupts */
|
||||
__mod_zone_page_state(zone, NR_MLOCK, -1);
|
||||
|
||||
if (PageLRU(page)) {
|
||||
lruvec = mem_cgroup_page_lruvec(page, zone);
|
||||
lru = page_lru(page);
|
||||
|
|
@ -275,8 +273,10 @@ skip_munlock:
|
|||
*/
|
||||
pvec->pages[i] = NULL;
|
||||
put_page(page);
|
||||
delta_munlocked++;
|
||||
}
|
||||
}
|
||||
__mod_zone_page_state(zone, NR_MLOCK, delta_munlocked);
|
||||
spin_unlock_irq(&zone->lru_lock);
|
||||
|
||||
/* Phase 2: page munlock and putback */
|
||||
|
|
|
|||
Loading…
Reference in a new issue