Messages in this thread | | | Date | Fri, 18 Apr 2008 12:32:56 +0900 | From | KAMEZAWA Hiroyuki <> | Subject | Re: [PATCH] memcgroup: check and initialize page->cgroup in memmap_init_zone |
| |
On Thu, 17 Apr 2008 20:14:32 -0700 Andrew Morton <akpm@linux-foundation.org> wrote:
> > for (pfn = start_pfn; pfn < end_pfn; pfn++) { > > /* > > @@ -2535,6 +2536,9 @@ void __meminit memmap_init_zone(unsigned long size, int nid, unsigned long zone, > > set_page_links(page, zone, nid, pfn); > > init_page_count(page); > > reset_page_mapcount(page); > > + pc = page_get_page_cgroup(page); > > + if (pc) > > + page_reset_bad_cgroup(page); > > SetPageReserved(page); > > > > hm, fishy. Perhaps the architecture isn't zeroing the memmap arrays? > AFAIK, No. memmap is allocated by alloc_bootmem() and returned memory is cleared by memset().
> Or perhaps that page was used and then later freed before we got to > memmap_init_zone() and was freed with a non-zero ->page_cgroup. Which is > unlikely given that page.page_cgroup was only just added and is only > present if CONFIG_CGROUP_MEM_RES_CTLR. > Hmm, I'll try his .config and see what happens.
Thanks, -Kame
| |