From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754646AbZJESlt (ORCPT ); Mon, 5 Oct 2009 14:41:49 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752662AbZJESls (ORCPT ); Mon, 5 Oct 2009 14:41:48 -0400 Received: from hera.kernel.org ([140.211.167.34]:60900 "EHLO hera.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754528AbZJESls (ORCPT ); Mon, 5 Oct 2009 14:41:48 -0400 Message-ID: <4ACA3DAE.6030300@kernel.org> Date: Mon, 05 Oct 2009 11:40:46 -0700 From: Yinghai Lu User-Agent: Thunderbird 2.0.0.23 (X11/20090817) MIME-Version: 1.0 To: Andi Kleen CC: Ingo Molnar , Thomas Gleixner , "H. Peter Anvin" , Suresh Siddha , Tejun Heo , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH] x86: use near online node instead of round bin for numa References: <4AC7974C.20304@kernel.org> <87my45yk79.fsf@basil.nowhere.org> <4ACA3677.40407@kernel.org> <20091005183539.GR1656@one.firstfloor.org> In-Reply-To: <20091005183539.GR1656@one.firstfloor.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Andi Kleen wrote: > On Mon, Oct 05, 2009 at 11:09:59AM -0700, Yinghai Lu wrote: >> Andi Kleen wrote: >>> Yinghai Lu writes: >>> >>>> cpu to node mapping is set in following sequence: >>>> 1. numa_init_array: set up roundbin from cpu to online node >>>> 2. init_cpu_to_node: set that according to apicid_to_node[] according to srat >>>> only handle that node is online, and leave other cpu on node >>>> without ram (aka not online) to still round-bin >>>> 3. later srat_detect_node for intel/amd, will use first_online node or near by >>>> node. >>>> >>>> problem is that setup_per_cpu_areas() is called between 2 and 3. the per_cpu >>>> for cpu on node with ram is on different node. and could put that on node with >>>> two hops away. >>>> >>>> so try add find_near_online_node() and call int init_cpu_to_node() >>> This fallback case should not really happen anyways, unless the BIOS is buggy >>> (in this case it might better to completely reject the SRAT because >>> more might be wrong). >> SRAT is right, and some node has no ram installed. > > In this case there should be still a PXM to define the CPU locality -- your BIOS is broken. > Please fix it there. I don't think so. YH