From: Milton Miller <miltonm@bga.com>
To: mohan@in.ibm.com
Cc: Michael Ellerman <michael@ellerman.id.au>,
ppcdev <linuxppc-dev@ozlabs.org>,
kexec@lists.infradead.org, Paul Mackerras <paulus@samba.org>
Subject: Re: [PATCH] Fix interrupt distribution in ppc970
Date: Wed, 6 Jun 2007 04:43:22 -0500 [thread overview]
Message-ID: <c1b8d82c8241fc3750c1339c34ecc799@bga.com> (raw)
In-Reply-To: <20070604105455.GA4916@in.ibm.com>
On Jun 4, 2007, at 5:54 AM, Mohan Kumar M wrote:
> Milton,
>
> How about this patch?
I'd make a few minor changes (see below), but I'll ack it.
I've checked it compiles and boots but not the server selection.
> =============================================================
> In some of the PPC970 based systems, interrupt would be distributed to
> offline cpus also even when booted with "maxcpus=1". So check whether
> cpu online map and cpu present map are equal or not. If they are equal
> default_distrib_server is used as interrupt server otherwise boot cpu
> (default_server) used as interrupt server.
>
> In addition to this, if an interrupt is assigned to a specific cpu (ie
> smp affinity) and if that cpu is not online, the earlier code used to
> return the default_distrib_server as interrupt server. This patch
> introduces an additional paramter to the get_irq function ie
> strict_check, based on this parameter, if the cpu is not online either
> default_distrib_server or -1 is returned.
>
> Cc: Milton Miller <miltonm@bga.com>,
> Michael Ellerman <michael@ellerman.id.au>
> Signed-off-by: Mohan Kumar M <mohan@in.ibm.com>
Acked-By: Milton Miller <miltonm@bga.com>
> @@ -166,22 +166,24 @@ static int get_irq_server(unsigned int v
> if (!distribute_irqs)
> return default_server;
>
> - if (cpus_equal(cpumask, CPU_MASK_ALL)) {
> - server = default_distrib_server;
> - } else {
> + if (!cpus_equal(cpumask, CPU_MASK_ALL)) {
> cpus_and(tmp, cpu_online_map, cpumask);
>
> - if (cpus_empty(tmp))
> - server = default_distrib_server;
> - else
> - server = get_hard_smp_processor_id(first_cpu(tmp));
> - }
> + server = first_cpu(tmp);
>
> - return server;
> + if (server < NR_CPUS)
> + return get_hard_smp_processor_id(server);
> + else if (strict_check)
> + return -1;
The indent on the return is 1 tab too many.
See next comment.
> + }
>
> + if (cpus_equal(cpu_online_map, cpu_present_map))
> + return default_distrib_server;
> + else
> + return default_server;
I'd actually remove both occurrences of "else" bringing this and the
previous return back a tabstop. The else is unnecessary because the if
statement is return . (Seperate the new if from the previous with a
blank line in both cases).
> }
> #else
> -static int get_irq_server(unsigned int virq)
> +static int get_irq_server(unsigned int virq, unsigned int
> strict_check)
> {
> return default_server;
> }
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
WARNING: multiple messages have this Message-ID (diff)
From: Milton Miller <miltonm@bga.com>
To: mohan@in.ibm.com
Cc: ppcdev <linuxppc-dev@ozlabs.org>,
kexec@lists.infradead.org, Paul Mackerras <paulus@samba.org>
Subject: Re: [PATCH] Fix interrupt distribution in ppc970
Date: Wed, 6 Jun 2007 04:43:22 -0500 [thread overview]
Message-ID: <c1b8d82c8241fc3750c1339c34ecc799@bga.com> (raw)
In-Reply-To: <20070604105455.GA4916@in.ibm.com>
On Jun 4, 2007, at 5:54 AM, Mohan Kumar M wrote:
> Milton,
>
> How about this patch?
I'd make a few minor changes (see below), but I'll ack it.
I've checked it compiles and boots but not the server selection.
> =============================================================
> In some of the PPC970 based systems, interrupt would be distributed to
> offline cpus also even when booted with "maxcpus=1". So check whether
> cpu online map and cpu present map are equal or not. If they are equal
> default_distrib_server is used as interrupt server otherwise boot cpu
> (default_server) used as interrupt server.
>
> In addition to this, if an interrupt is assigned to a specific cpu (ie
> smp affinity) and if that cpu is not online, the earlier code used to
> return the default_distrib_server as interrupt server. This patch
> introduces an additional paramter to the get_irq function ie
> strict_check, based on this parameter, if the cpu is not online either
> default_distrib_server or -1 is returned.
>
> Cc: Milton Miller <miltonm@bga.com>,
> Michael Ellerman <michael@ellerman.id.au>
> Signed-off-by: Mohan Kumar M <mohan@in.ibm.com>
Acked-By: Milton Miller <miltonm@bga.com>
> @@ -166,22 +166,24 @@ static int get_irq_server(unsigned int v
> if (!distribute_irqs)
> return default_server;
>
> - if (cpus_equal(cpumask, CPU_MASK_ALL)) {
> - server = default_distrib_server;
> - } else {
> + if (!cpus_equal(cpumask, CPU_MASK_ALL)) {
> cpus_and(tmp, cpu_online_map, cpumask);
>
> - if (cpus_empty(tmp))
> - server = default_distrib_server;
> - else
> - server = get_hard_smp_processor_id(first_cpu(tmp));
> - }
> + server = first_cpu(tmp);
>
> - return server;
> + if (server < NR_CPUS)
> + return get_hard_smp_processor_id(server);
> + else if (strict_check)
> + return -1;
The indent on the return is 1 tab too many.
See next comment.
> + }
>
> + if (cpus_equal(cpu_online_map, cpu_present_map))
> + return default_distrib_server;
> + else
> + return default_server;
I'd actually remove both occurrences of "else" bringing this and the
previous return back a tabstop. The else is unnecessary because the if
statement is return . (Seperate the new if from the previous with a
blank line in both cases).
> }
> #else
> -static int get_irq_server(unsigned int virq)
> +static int get_irq_server(unsigned int virq, unsigned int
> strict_check)
> {
> return default_server;
> }
next prev parent reply other threads:[~2007-06-06 9:43 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-08 4:55 [PATCH] Fix interrupt distribution in ppc970 Mohan Kumar M
2006-12-18 4:37 ` Paul Mackerras
2006-12-18 5:14 ` Mohan Kumar M
2006-12-18 10:57 ` Mohan Kumar M
2007-01-02 11:42 ` [Fastboot] " Mohan Kumar M
2007-01-02 15:07 ` Doug Maxey
2007-03-06 13:57 ` Mohan Kumar M
2007-03-06 14:16 ` Michael Ellerman
2007-03-06 16:55 ` Mohan Kumar M
2007-03-06 17:37 ` Michael Ellerman
2007-03-07 4:53 ` Mohan Kumar M
2007-03-07 10:52 ` Michael Ellerman
2007-04-09 8:57 ` Mohan Kumar M
2007-04-10 7:06 ` Michael Ellerman
2007-04-10 12:54 ` Mohan Kumar M
2007-04-10 16:59 ` Milton Miller
2007-04-11 1:16 ` Michael Ellerman
2007-04-19 11:52 ` Mohan Kumar M
2007-04-20 5:45 ` Milton Miller
2007-04-26 9:24 ` Mohan Kumar M
2007-04-26 14:42 ` Milton Miller
2007-05-03 14:47 ` Mohan Kumar M
2007-05-03 14:47 ` Mohan Kumar M
2007-05-06 6:52 ` Milton Miller
2007-05-06 6:52 ` Milton Miller
2007-06-04 10:54 ` Mohan Kumar M
2007-06-04 10:54 ` Mohan Kumar M
2007-06-06 9:43 ` Milton Miller [this message]
2007-06-06 9:43 ` Milton Miller
2007-06-06 11:31 ` Mohan Kumar M
2007-06-06 11:31 ` Mohan Kumar M
2007-06-11 1:58 ` Milton Miller
2007-06-11 1:58 ` Milton Miller
2007-06-11 18:07 ` Mohan Kumar M
2007-06-11 18:07 ` Mohan Kumar M
2007-06-12 14:51 ` Mohan Kumar M
2007-06-12 14:51 ` Mohan Kumar M
2007-06-15 16:35 ` Milton Miller
2007-06-15 16:35 ` Milton Miller
2007-03-07 6:06 ` [Fastboot] " Vivek Goyal
2007-03-07 10:46 ` Michael Ellerman
2007-03-06 22:05 ` Nathan Lynch
2007-03-07 5:01 ` Mohan Kumar M
2007-03-07 8:52 ` Benjamin Herrenschmidt
2007-03-07 9:10 ` Mohan Kumar M
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=c1b8d82c8241fc3750c1339c34ecc799@bga.com \
--to=miltonm@bga.com \
--cc=kexec@lists.infradead.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=michael@ellerman.id.au \
--cc=mohan@in.ibm.com \
--cc=paulus@samba.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 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.