mm-balloon_compaction-use-common-page-ballooning-use-vmstat-counters From: Konstantin Khlebnikov fix for mm-balloon_compaction-use-common-page-ballooning-v2 Signed-off-by: Konstantin Khlebnikov --- drivers/virtio/virtio_balloon.c | 1 + include/linux/balloon_compaction.h | 2 -- mm/balloon_compaction.c | 2 ++ 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index c84d6a8..6b3444b 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c @@ -395,6 +395,7 @@ static int virtballoon_migratepage(struct balloon_dev_info *vb_dev_info, /* balloon's page migration 1st step -- inflate "newpage" */ spin_lock_irqsave(&vb_dev_info->pages_lock, flags); balloon_page_insert(vb_dev_info, newpage); + __count_vm_event(BALLOON_MIGRATE); vb_dev_info->isolated_pages--; spin_unlock_irqrestore(&vb_dev_info->pages_lock, flags); vb->num_pfns = VIRTIO_BALLOON_PAGES_PER_PAGE; diff --git a/include/linux/balloon_compaction.h b/include/linux/balloon_compaction.h index ad112fcc6..d69f2ae 100644 --- a/include/linux/balloon_compaction.h +++ b/include/linux/balloon_compaction.h @@ -87,7 +87,6 @@ static inline void balloon_page_insert(struct balloon_dev_info *b_dev_info, struct page *page) { __SetPageBalloon(page); - inc_zone_page_state(page, NR_BALLOON_PAGES); set_page_private(page, (unsigned long)b_dev_info); list_add(&page->lru, &b_dev_info->pages); } @@ -104,7 +103,6 @@ balloon_page_insert(struct balloon_dev_info *b_dev_info, struct page *page) static inline void balloon_page_delete(struct page *page, bool isolated) { __ClearPageBalloon(page); - dec_zone_page_state(page, NR_BALLOON_PAGES); set_page_private(page, 0); if (!isolated) list_del(&page->lru); diff --git a/mm/balloon_compaction.c b/mm/balloon_compaction.c index 3c8cb7a..c536350 100644 --- a/mm/balloon_compaction.c +++ b/mm/balloon_compaction.c @@ -36,6 +36,7 @@ struct page *balloon_page_enqueue(struct balloon_dev_info *b_dev_info) BUG_ON(!trylock_page(page)); spin_lock_irqsave(&b_dev_info->pages_lock, flags); balloon_page_insert(b_dev_info, page); + __count_vm_event(BALLOON_INFLATE); spin_unlock_irqrestore(&b_dev_info->pages_lock, flags); unlock_page(page); return page; @@ -67,6 +68,7 @@ struct page *balloon_page_dequeue(struct balloon_dev_info *b_dev_info) if (trylock_page(page)) { spin_lock_irqsave(&b_dev_info->pages_lock, flags); balloon_page_delete(page, false); + __count_vm_event(BALLOON_DEFLATE); spin_unlock_irqrestore(&b_dev_info->pages_lock, flags); unlock_page(page); return page;