mm/page_alloc: fix incorrect PGFREE and PGALLOC for high-order page
[platform/kernel/linux-starfive.git] / mm / page_alloc.c
index 059f694..8e9b7f0 100644 (file)
@@ -3446,7 +3446,7 @@ static void free_unref_page_commit(struct zone *zone, struct per_cpu_pages *pcp,
        int pindex;
        bool free_high;
 
-       __count_vm_event(PGFREE);
+       __count_vm_events(PGFREE, 1 << order);
        pindex = order_to_pindex(migratetype, order);
        list_add(&page->pcp_list, &pcp->lists[pindex]);
        pcp->count += 1 << order;
@@ -3803,7 +3803,7 @@ static struct page *rmqueue_pcplist(struct zone *preferred_zone,
        pcp_spin_unlock_irqrestore(pcp, flags);
        pcp_trylock_finish(UP_flags);
        if (page) {
-               __count_zid_vm_events(PGALLOC, page_zonenum(page), 1);
+               __count_zid_vm_events(PGALLOC, page_zonenum(page), 1 << order);
                zone_statistics(preferred_zone, zone, 1);
        }
        return page;