--- zzzz-none-000/linux-4.1.38/mm/page_alloc.c 2017-01-18 18:48:06.000000000 +0000 +++ bcm63-7582-715/linux-4.1.38/mm/page_alloc.c 2020-11-25 10:06:48.000000000 +0000 @@ -185,6 +185,9 @@ #ifdef CONFIG_ZONE_DMA32 256, #endif +#if defined(CONFIG_BCM_KF_ARM_BCM963XX) && defined(CONFIG_BCM_ZONE_ACP) + 1, +#endif #ifdef CONFIG_HIGHMEM 32, #endif @@ -200,6 +203,9 @@ #ifdef CONFIG_ZONE_DMA32 "DMA32", #endif +#if defined(CONFIG_BCM_KF_ARM_BCM963XX) && defined(CONFIG_BCM_ZONE_ACP) + "ACP", +#endif "Normal", #ifdef CONFIG_HIGHMEM "HighMem", @@ -1647,6 +1653,9 @@ set_page_owner(page, 0, 0); for (i = 1; i < (1 << order); i++) { set_page_refcounted(page + i); +#if defined(CONFIG_AVM_PAGE_TRACE) + page[i].current_pc = page->current_pc; +#endif/*--- #if defined(CONFIG_AVM_PAGE_TRACE) ---*/ set_page_owner(page + i, 0, 0); } } @@ -2867,7 +2876,11 @@ */ struct page * __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order, - struct zonelist *zonelist, nodemask_t *nodemask) + struct zonelist *zonelist, nodemask_t *nodemask +#if defined(CONFIG_AVM_PAGE_TRACE) + , unsigned long pc +#endif/*--- #if defined(CONFIG_AVM_PAGE_TRACE) ---*/ + ) { struct zoneref *preferred_zoneref; struct page *page = NULL; @@ -2942,6 +2955,11 @@ if (unlikely(!page && read_mems_allowed_retry(cpuset_mems_cookie))) goto retry_cpuset; +#if defined(CONFIG_AVM_PAGE_TRACE) + if(likely(page)) { + page->current_pc = pc; + } +#endif/*--- #if defined(CONFIG_AVM_PAGE_TRACE) ---*/ return page; } EXPORT_SYMBOL(__alloc_pages_nodemask); @@ -3288,6 +3306,29 @@ for_each_online_cpu(cpu) free_pcp += per_cpu_ptr(zone->pageset, cpu)->pcp.count; } +#if defined(CONFIG_AVM_ENHANCED) + { + unsigned int sum_pages; + sum_pages = global_page_state(NR_ACTIVE_ANON)+ + global_page_state(NR_INACTIVE_ANON)+ + global_page_state(NR_ISOLATED_ANON)+ + global_page_state(NR_ACTIVE_FILE)+ + global_page_state(NR_INACTIVE_FILE)+ + global_page_state(NR_ISOLATED_FILE)+ + global_page_state(NR_UNEVICTABLE)+ + global_page_state(NR_FILE_DIRTY)+ + global_page_state(NR_WRITEBACK)+ + global_page_state(NR_UNSTABLE_NFS)+ + global_page_state(NR_FREE_PAGES)+ + global_page_state(NR_SLAB_RECLAIMABLE)+ + global_page_state(NR_SLAB_UNRECLAIMABLE)+ + global_page_state(NR_FILE_MAPPED)+ + global_page_state(NR_SHMEM)+ + global_page_state(NR_PAGETABLE)+ + global_page_state(NR_BOUNCE); + printk("global_page_sum %ukB(%u pages)\n", sum_pages * 4, sum_pages); + } +#endif/*--- #if defined(CONFIG_AVM_ENHANCED) ---*/ printk("active_anon:%lu inactive_anon:%lu isolated_anon:%lu\n" " active_file:%lu inactive_file:%lu isolated_file:%lu\n"