Re: [Patch v1] ACPI, x86: fix bug in associating hot-added CPUs with corresponding NUMA node

Jiang Liu <[email protected]>
Newsgroups gmane.linux.acpi.devel,gmane.linux.hotplug.devel,gmane.linux.kernel,gmane.linux.power-management.general
Organization Intel
Message-ID <[email protected]>

On 2014/2/5 8:14, Rafael J. Wysocki wrote:
> On Monday, January 20, 2014 10:31:54 AM Jiang Liu wrote:
>> Current ACPI cpu hotplug driver fails to associate hot-added CPUs with
>> corresponding NUMA node when doing socket online. The code path to
>> associate CPU with NUMA node is as below:
>> acpi_processor_add()
>>     ->acpi_processor_get_info()
>> 	->acpi_processor_hotadd_init()
>> 	    ->acpi_map_lsapic()
>> 		->_acpi_map_lsapic()
>> 		    ->acpi_map_cpu2node()
>> cpu_subsys_online()
>>     ->try_online_node()
>> 	->node_set_online()
>>
>> When doing socket online, a new NUMA node is introduced in addition to
>> hot-added CPU and memory device. And the new NUMA node is marked as
>> online when onlining hot-added CPUs through sysfs interface
>> /sys/devices/system/cpu/cpuxx/online.
>>
>> On the other hand, acpi_map_cpu2node() will only build the CPU to node
>> map if corresponding NUMA node is already online, so it always fails
>> to associate hot-added CPUs with corresponding NUMA node because the
>> NUMA node is still in offline state.
>>
>> For the fix, we could safely remove the "node_online(node)" check in
>> function acpi_map_cpu2node() because it's only called for hot-added CPUs
>> by acpi_processor_hotadd_init().
>>
>> Signed-off-by: Jiang Liu <[email protected]>
> 
> I wonder what the status here is?  Did this patch go anywhere?
Hi Rafael,
	It's still in review stage, hasn't been accepted by any
maintainer yet.
Thanks!
Gerry

> 
>> ---
>>  arch/x86/kernel/acpi/boot.c |    8 ++++----
>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
>> index 6c0b43b..7625de9 100644
>> --- a/arch/x86/kernel/acpi/boot.c
>> +++ b/arch/x86/kernel/acpi/boot.c
>> @@ -614,10 +614,10 @@ static void acpi_map_cpu2node(acpi_handle handle, int cpu, int physid)
>>  	int nid;
>>  
>>  	nid = acpi_get_node(handle);
>> -	if (nid == -1 || !node_online(nid))
>> -		return;
>> -	set_apicid_to_node(physid, nid);
>> -	numa_set_node(cpu, nid);
>> +	if (nid != -1) {
>> +		set_apicid_to_node(physid, nid);
>> +		numa_set_node(cpu, nid);
>> +	}
>>  #endif
>>  }
>>  
>>
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.