[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120712195815.GQ20382@redhat.com>
Date: Thu, 12 Jul 2012 21:58:15 +0200
From: Andrea Arcangeli <aarcange@...hat.com>
To: Rik van Riel <riel@...hat.com>
Cc: linux-kernel@...r.kernel.org, linux-mm@...ck.org,
Hillf Danton <dhillf@...il.com>, Dan Smith <danms@...ibm.com>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...e.hu>, Paul Turner <pjt@...gle.com>,
Suresh Siddha <suresh.b.siddha@...el.com>,
Mike Galbraith <efault@....de>,
"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
Lai Jiangshan <laijs@...fujitsu.com>,
Bharata B Rao <bharata.rao@...il.com>,
Lee Schermerhorn <Lee.Schermerhorn@...com>,
Johannes Weiner <hannes@...xchg.org>,
Srivatsa Vaddagiri <vatsa@...ux.vnet.ibm.com>,
Christoph Lameter <cl@...ux.com>,
Alex Shi <alex.shi@...el.com>,
Mauricio Faria de Oliveira <mauricfo@...ux.vnet.ibm.com>,
Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>,
Don Morris <don.morris@...com>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>
Subject: Re: [PATCH 36/40] autonuma: page_autonuma
On Mon, Jul 02, 2012 at 02:37:10AM -0400, Rik van Riel wrote:
> > +fail:
> > + printk(KERN_CRIT "allocation of page_autonuma failed.\n");
> > + printk(KERN_CRIT "please try the 'noautonuma' boot option\n");
> > + panic("Out of memory");
> > +}
>
> The system can run just fine without autonuma.
>
> Would it make sense to simply disable autonuma at this point,
> but to try continue running?
BTW, the same would apply to mm/page_cgroup.c, but I think the idea
here is that something serious went wrong. Workaround with noautonuma
boot option is enough.
>
> > @@ -700,8 +780,14 @@ static void free_section_usemap(struct page *memmap, unsigned long *usemap)
> > */
> > if (PageSlab(usemap_page)) {
> > kfree(usemap);
> > - if (memmap)
> > + if (memmap) {
> > __kfree_section_memmap(memmap, PAGES_PER_SECTION);
> > + if (!autonuma_impossible())
> > + __kfree_section_page_autonuma(page_autonuma,
> > + PAGES_PER_SECTION);
> > + else
> > + BUG_ON(page_autonuma);
>
> VM_BUG_ON ?
>
> > + if (!autonuma_impossible()) {
> > + struct page *page_autonuma_page;
> > + page_autonuma_page = virt_to_page(page_autonuma);
> > + free_map_bootmem(page_autonuma_page, nr_pages);
> > + } else
> > + BUG_ON(page_autonuma);
>
> ditto
>
> > pgdat_resize_unlock(pgdat,&flags);
> > if (ret<= 0) {
> > + if (!autonuma_impossible())
> > + __kfree_section_page_autonuma(page_autonuma, nr_pages);
> > + else
> > + BUG_ON(page_autonuma);
>
> VM_BUG_ON ?
These only run at the very boot stage, so performance is irrelevant
and it's safer to keep them on.
The rest was corrected.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists