From: Borislav Petkov <bp@alien8.de>
To: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
Cc: Igor Mammedov <imammedo@redhat.com>,
tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com,
x86@kernel.org, toshi.kani@hp.com, huawei.libin@huawei.com,
paul.gortmaker@windriver.com, linux-kernel@vger.kernel.org,
srivatsa.bhat@linux.vnet.ibm.com, umgwanakikbuti@gmail.com,
peterz@infradead.org
Subject: Re: [PATCH] x86,cpu-hotplug: assign same CPU number to readded CPU
Date: Fri, 11 Jul 2014 12:59:20 +0200 [thread overview]
Message-ID: <20140711105920.GC17083@pd.tnic> (raw)
In-Reply-To: <53BF345B.8000107@jp.fujitsu.com>
On Fri, Jul 11, 2014 at 09:48:27AM +0900, Yasuaki Ishimatsu wrote:
> >>+static int get_cpuid(int apicid)
Btw this "cpuid" is misleading. Call it "cpu_num" or so.
> >>+{
> >>+ int cpuid;
> >>+
> >>+ cpuid = apicid_to_cpuid[apicid];
> >>+ if (cpuid < 0)
> >>+ cpuid = cpumask_next_zero(-1, cpu_used_mask);
> >Why do you need additional cpu bitmask?
>
> To assing new CPU number, I prepared new cpu bitmask.
>
> The following two steps are necessary to assign CPU number to APIC ID.
> 1. Check whether APIC ID has been assigned CPU number
> 2. Assign new CPU number if ACPI ID has not been assigned CPU number (it
> means apicid_to_cpuid[] returns -1)
>
> Step 1. is checked by apicid_to_cpuid[]. And step 2. assigns new CPU
> number by using cpu_used_mask.
>
> To keep cpu number, cpumask must not be cleared by hot removing CPU.
> If cpumask is cleared by hot removing CPU, the cpumask cannot be used
> to keep CPU number.
>
> Currently, cpu_present_map is used to assign CPU number. But the cpumask
> is cleared by hot removing CPU since the mask is prepared to remember
> existed CPUs in the system. So the cpu_present_map must be cleared
> at CPU hot remove.
>
> I confirmed whether present cpumasks (cpu_possible_map, cpu_online_map
> et al) is usable or not for this purpose. But there is no cpumask that
> can be used to keep CPU number. So I prepared new cpu bitmask.
>
> >How about just finding the first apicid_to_cpuid[apicid] < 0
> >and dropping not needed anymore bitmask.
>
> When apicid_to_cpuid[] return -1, kernel assigns new CPU number. For
> this, the cpu_used_mask is necessary.
And we can't have that - we cannot have cores which had number X get
number Y after hotplug.
Can you send a full dmesg after you've done a physical node hotplug on a
machine? Privately is fine too.
Boot with
"ignore_loglevel log_buf_len=10M debug apic=debug show_lapic=all"
please.
Thanks.
--
Regards/Gruss,
Boris.
Sent from a fat crate under my desk. Formatting is fine.
--
next prev parent reply other threads:[~2014-07-11 10:59 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-10 8:41 Yasuaki Ishimatsu
2014-07-10 9:26 ` Igor Mammedov
2014-07-11 0:48 ` Yasuaki Ishimatsu
2014-07-11 10:59 ` Borislav Petkov [this message]
2014-07-15 4:27 ` Yasuaki Ishimatsu
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=20140711105920.GC17083@pd.tnic \
--to=bp@alien8.de \
--cc=hpa@zytor.com \
--cc=huawei.libin@huawei.com \
--cc=imammedo@redhat.com \
--cc=isimatu.yasuaki@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=paul.gortmaker@windriver.com \
--cc=peterz@infradead.org \
--cc=srivatsa.bhat@linux.vnet.ibm.com \
--cc=tglx@linutronix.de \
--cc=toshi.kani@hp.com \
--cc=umgwanakikbuti@gmail.com \
--cc=x86@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®