On Fri, 2019-03-22 at 08:41 +0500, Mikhail Gavrilov wrote: > On Fri, 22 Mar 2019 at 00:14, Qian Cai <cai@xxxxxx> wrote: > > > > > > That is OK. The above debug patch may still be useful to figure out where > > those > > pages come from (or you could add those 3 pages address to the patch as > > well). > > They may be initialized in a similar fashion or uninitialized to begin with. > > Strange I modified patch for catch all 0xffffXXXXX07ce000 pages > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 03fcf73..8808e2a 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -1273,6 +1273,10 @@ static void free_one_page(struct zone *zone, > static void __meminit __init_single_page(struct page *page, unsigned long > pfn, > unsigned long zone, int nid) > { > + if (0xffff00000fffffff & page == (void *)0xffff0000007ce000) { > + printk("KK page = %px\n", page); > + dump_stack(); > + } > mm_zero_struct_page(page); > set_page_links(page, zone, nid, pfn); > init_page_count(page); Those pages are not initialized at all which likely mean that memblock did not even allocate them at the first place, so Mel's patch might work.