From: Tang Chen <tangchen@cn.fujitsu.com>
To: Wen Congyang <wency@cn.fujitsu.com>,
David Rientjes <rientjes@google.com>
Cc: mingo@redhat.com, peterz@infradead.org, miaox@cn.fujitsu.com,
linux-kernel@vger.kernel.org, linux-numa@vger.kernel.org
Subject: Re: [PATCH] Do not use cpu_to_node() to find an offlined cpu's node.
Date: Tue, 09 Oct 2012 16:39:27 +0800 [thread overview]
Message-ID: <5073E2BF.9050306@cn.fujitsu.com> (raw)
In-Reply-To: <5073E18A.2090203@cn.fujitsu.com>
Hi David,
Thanks for reviewing this patch. :)
On 10/09/2012 04:34 PM, Wen Congyang wrote:
> At 10/09/2012 02:21 PM, David Rientjes Wrote:
>> On Mon, 8 Oct 2012, Tang Chen wrote:
>>> + /* If the cpu has been offlined, its nid was set to -1. */
>>> + if (nid != -1) {
>>
>> NUMA_NO_NODE.
Yes, NUMA_NO_NODE is better. I'll improve it, thanks. :)
>>
>> Eek, the nid shouldn't be -1 yet, though, for cpu hotplug since this
>> should be called at CPU_DYING level and migrate_tasks() still sees a valid
>> cpu.
As Wen said below, nid is now set to -1 when cpu is hotremoved.
I reproduce this problem in this situation:
all cpus are online, and hot remove a system board directorily, without
offlining any cpu.
As a result, the removed cpu's nid is set to -1, and this causes
problems.
>
> the cpu's node is set when the cpu is hotpluged(not online), and it will
> be cleared when the cpu is hotremoved(This patch is in akpm tree):
> https://lkml.org/lkml/2012/9/3/39
>
> I guess the task is in sleep state when the cpu is offlined, and it doesn't
> be migrated to another cpu.
>
> Thanks
> Wen Congyang
>
>>
>> On x86, cpumask_of_node() is always guaranteed to return a valid cpumask
>> after boot so presumably this is a problem in some non-x86 arch code and
>> isn't actually a sched problem.
BTW, my box is x86. I think for the reason I said above,
cpumask_of_node() will no longer guaranteed anything even if on x86.
Thanks. :)
>>
>>> + nodemask = cpumask_of_node(nid);
>>> +
>>> + /* Look for allowed, online CPU in same node. */
>>> + for_each_cpu(dest_cpu, nodemask) {
>>> + if (!cpu_online(dest_cpu))
>>> + continue;
>>> + if (!cpu_active(dest_cpu))
>>> + continue;
>>> + if (cpumask_test_cpu(dest_cpu, tsk_cpus_allowed(p)))
>>> + return dest_cpu;
>>> + }
>>> }
>>>
>>> for (;;) {
>>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
next prev parent reply other threads:[~2012-10-09 8:39 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-08 2:59 [PATCH] Do not use cpu_to_node() to find an offlined cpu's node Tang Chen
2012-10-09 6:21 ` David Rientjes
2012-10-09 8:34 ` Wen Congyang
2012-10-09 8:39 ` Tang Chen [this message]
2012-10-09 10:04 ` David Rientjes
2012-10-09 10:22 ` Wen Congyang
2012-10-09 20:00 ` David Rientjes
2012-10-09 10:57 ` Peter Zijlstra
2012-10-09 20:36 ` David Rientjes
2012-10-09 20:47 ` Peter Zijlstra
2012-10-09 23:27 ` David Rientjes
2012-10-10 2:06 ` Wen Congyang
2012-10-10 3:48 ` Wen Congyang
2012-10-10 9:10 ` Peter Zijlstra
2012-10-10 9:33 ` Wen Congyang
2012-10-10 9:51 ` Peter Zijlstra
2012-10-10 10:10 ` Wen Congyang
2012-10-10 10:07 ` Peter Zijlstra
2012-10-10 20:30 ` David Rientjes
2012-10-10 20:37 ` Andrew Morton
2012-10-10 20:57 ` David Rientjes
2012-10-18 0:52 ` David Rientjes
2012-10-18 2:51 ` Tang Chen
2012-10-18 3:29 ` David Rientjes
2012-10-19 11:18 ` Peter Zijlstra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5073E2BF.9050306@cn.fujitsu.com \
--to=tangchen@cn.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-numa@vger.kernel.org \
--cc=miaox@cn.fujitsu.com \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rientjes@google.com \
--cc=wency@cn.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.