From: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
To: Paul Mackerras <paulus@samba.org>
Cc: linuxppc-dev@ozlabs.org, Stephen Rothwell <sfr@canb.auug.org.au>
Subject: Re: [PATCH v2 2/2] powerpc: Use ibm, chip-id property to compute cpu_core_mask if available
Date: Mon, 12 Aug 2013 13:25:02 +0530 [thread overview]
Message-ID: <520894D6.7050701@linux.vnet.ibm.com> (raw)
In-Reply-To: <20130812062933.GC20246@iris.ozlabs.ibm.com>
On 08/12/2013 11:59 AM, Paul Mackerras wrote:
> Some systems have an ibm,chip-id property in the cpu nodes in the
> device tree. On these systems, we now use that to compute the
> cpu_core_mask (i.e. the set of core siblings) rather than looking
> at cache properties.
Looks fine.
Tested-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
-Vasant
>
> Signed-off-by: Paul Mackerras <paulus@samba.org>
> ---
> v2: add is bool, use of_read_number
>
> arch/powerpc/kernel/smp.c | 48 ++++++++++++++++++++++++++++++++++++++++++++---
> 1 file changed, 45 insertions(+), 3 deletions(-)
>
> diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
> index 1568525..a4137de 100644
> --- a/arch/powerpc/kernel/smp.c
> +++ b/arch/powerpc/kernel/smp.c
> @@ -587,6 +587,33 @@ int cpu_first_thread_of_core(int core)
> }
> EXPORT_SYMBOL_GPL(cpu_first_thread_of_core);
>
> +static void traverse_siblings_chip_id(int cpu, bool add, int chipid)
> +{
> + const struct cpumask *mask;
> + struct device_node *np;
> + int i, plen;
> + const __be32 *prop;
> +
> + mask = add ? cpu_online_mask : cpu_present_mask;
> + for_each_cpu(i, mask) {
> + np = of_get_cpu_node(i, NULL);
> + if (!np)
> + continue;
> + prop = of_get_property(np, "ibm,chip-id", &plen);
> + if (prop && plen == sizeof(int) &&
> + of_read_number(prop, 1) == chipid) {
> + if (add) {
> + cpumask_set_cpu(cpu, cpu_core_mask(i));
> + cpumask_set_cpu(i, cpu_core_mask(cpu));
> + } else {
> + cpumask_clear_cpu(cpu, cpu_core_mask(i));
> + cpumask_clear_cpu(i, cpu_core_mask(cpu));
> + }
> + }
> + of_node_put(np);
> + }
> +}
> +
> /* Must be called when no change can occur to cpu_present_mask,
> * i.e. during cpu online or offline.
> */
> @@ -611,14 +638,29 @@ static struct device_node *cpu_to_l2cache(int cpu)
>
> static void traverse_core_siblings(int cpu, bool add)
> {
> - struct device_node *l2_cache;
> + struct device_node *l2_cache, *np;
> const struct cpumask *mask;
> - int i;
> + int i, chip, plen;
> + const __be32 *prop;
> +
> + /* First see if we have ibm,chip-id properties in cpu nodes */
> + np = of_get_cpu_node(cpu, NULL);
> + if (np) {
> + chip = -1;
> + prop = of_get_property(np, "ibm,chip-id", &plen);
> + if (prop && plen == sizeof(int))
> + chip = of_read_number(prop, 1);
> + of_node_put(np);
> + if (chip >= 0) {
> + traverse_siblings_chip_id(cpu, add, chip);
> + return;
> + }
> + }
>
> l2_cache = cpu_to_l2cache(cpu);
> mask = add ? cpu_online_mask : cpu_present_mask;
> for_each_cpu(i, mask) {
> - struct device_node *np = cpu_to_l2cache(i);
> + np = cpu_to_l2cache(i);
> if (!np)
> continue;
> if (np == l2_cache) {
>
prev parent reply other threads:[~2013-08-12 7:54 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-12 6:28 [PATCH v2 1/2] powerpc: Pull out cpu_core_mask updates into a separate function Paul Mackerras
2013-08-12 6:29 ` [PATCH v2 2/2] powerpc: Use ibm,chip-id property to compute cpu_core_mask if available Paul Mackerras
2013-08-12 7:55 ` Vasant Hegde [this message]
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=520894D6.7050701@linux.vnet.ibm.com \
--to=hegdevasant@linux.vnet.ibm.com \
--cc=linuxppc-dev@ozlabs.org \
--cc=paulus@samba.org \
--cc=sfr@canb.auug.org.au \
/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.