From: marc.zyngier@arm.com (Marc Zyngier)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: irq_work: Do not attempt to IPI on non IPI-capable HW
Date: Wed, 17 Aug 2016 09:08:48 +0100 [thread overview]
Message-ID: <57B41B90.3050204@arm.com> (raw)
In-Reply-To: <VI1PR04MB1455E9F56D0EDA0558CC84508B140@VI1PR04MB1455.eurprd04.prod.outlook.com>
On 17/08/16 08:58, Peter Chen wrote:
>
>> On 17/08/16 04:15, Peter Chen wrote:
>>> On Tue, Aug 16, 2016 at 11:26 PM, Marc Zyngier <marc.zyngier@arm.com>
>> wrote:
>>>> Not all of the ARM HW is IPI capable (i.e. most of the non-SMP
>>>> systems). Unfortunately, some systems do advertise being SMP capable,
>>>> even if they have a single core and do not define a cross call
>>>> method.
>>>
>>> Could you example it? I find all current set_smp_cross_call is defined
>>> under CONFIG_SMP.
>>
>> This doesn't mean that the system will be SMP at runtime (SMP_ON_UP).
>>
>
> I am puzzled that how you would like to check IPI capable, at runtime
> or according to kernel configuration?
>
>>>>
>>>> static inline bool arch_irq_work_has_interrupt(void) {
>>>> - return is_smp();
>>>> +#ifdef CONFIG_SMP
>>>
>>> Why not using is_smp as condition, it is more strict.
>>>
>>> if (is_smp())
>>> return !!__smp_cross_call;
>>> else
>>> return false;
>>
>> What's the gain? We're trying to check whether we can actually deliver
>> an IPI. Why should we gate it by finding out whether we're smp_on_up or not?
>>
>
> If UP system with CONFIG_SMP enabled, the __smp_cross_call is not
> NULL, but the IPI is not capable. Or am I missing something?
Take an OMAP3 system. It is UP, and doesn't have a GIC, so
__smp_cross_call will be NULL. Yet, it boots with a generic
multi-platform kernel, with SMP on.
Thanks,
M.
--
Jazz is not dead. It just smells funny...
next prev parent reply other threads:[~2016-08-17 8:08 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-16 15:26 [PATCH] ARM: irq_work: Do not attempt to IPI on non IPI-capable HW Marc Zyngier
2016-08-16 15:52 ` Fabio Estevam
2016-08-16 16:03 ` Marc Zyngier
2016-08-17 3:15 ` Peter Chen
2016-08-17 7:41 ` Marc Zyngier
2016-08-17 7:58 ` Peter Chen
2016-08-17 8:08 ` Marc Zyngier [this message]
2016-08-17 8:28 ` Peter Chen
2016-08-17 9:19 ` Marc Zyngier
2016-08-17 11:27 ` Peter Chen
2016-08-17 12:57 ` Marc Zyngier
2016-08-17 13:28 ` Fabio Estevam
2016-08-30 17:03 ` Marc Zyngier
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=57B41B90.3050204@arm.com \
--to=marc.zyngier@arm.com \
--cc=linux-arm-kernel@lists.infradead.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.