[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.02.1402140244330.12099@chino.kir.corp.google.com>
Date: Fri, 14 Feb 2014 02:54:06 -0800 (PST)
From: David Rientjes <rientjes@...gle.com>
To: Nishanth Aravamudan <nacc@...ux.vnet.ibm.com>
cc: Linus Torvalds <torvalds@...ux-foundation.org>,
Raghavendra K T <raghavendra.kt@...ux.vnet.ibm.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Fengguang Wu <fengguang.wu@...el.com>,
David Cohen <david.a.cohen@...ux.intel.com>,
Al Viro <viro@...iv.linux.org.uk>,
Damien Ramonda <damien.ramonda@...el.com>,
Jan Kara <jack@...e.cz>, linux-mm <linux-mm@...ck.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [RFC PATCH V5] mm readahead: Fix readahead fail for no local
memory and limit readahead pages
On Thu, 13 Feb 2014, Nishanth Aravamudan wrote:
> There is an open issue on powerpc with memoryless nodes (inasmuch as we
> can have them, but the kernel doesn't support it properly). There is a
> separate discussion going on on linuxppc-dev about what is necessary for
> CONFIG_HAVE_MEMORYLESS_NODES to be supported.
>
Yeah, and this is causing problems with the slub allocator as well.
> Apologies for hijacking the thread, my comments below were purely about
> the memoryless node support, not about readahead specifically.
>
Neither you nor Raghavendra have any reason to apologize to anybody.
Memoryless node support on powerpc isn't working very well right now and
you're trying to fix it, that fix is needed both in this thread and in
your fixes for slub. It's great to see both of you working hard on your
platform to make it work the best.
I think what you'll need to do in addition to your
CONFIG_HAVE_MEMORYLESS_NODE fix, which is obviously needed, is to enable
CONFIG_USE_PERCPU_NUMA_NODE_ID for the same NUMA configurations and then
use set_numa_node() or set_cpu_numa_node() to properly store the mapping
between cpu and node rather than numa_cpu_lookup_table. Then you should
be able to do away with your own implementation of cpu_to_node().
After that, I think it should be as simple as doing
set_numa_node(cpu_to_node(cpu));
set_numa_mem(local_memory_node(cpu_to_node(cpu)));
probably before taking vector_lock in smp_callin(). The cpu-to-node
mapping should be done much earlier in boot while the nodes are being
initialized, I don't think there should be any problem there.
While you're at it, I think you'll also want to add a comment that
setting up the cpu sibling mask must be done before the smp_wmb() before
notify_cpu_starting(cpu), it's crucial to have before the cpu is brought
online and why we need the store memory barrier.
But, again, please don't apologize for developing your architecture and
attacking bugs as they arise, it's very admirable and I'm happy to help in
any way that I can.
--
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