From: Wolfgang Grandegger <wg@domain.hid>
To: rpm@xenomai.org
Cc: Jan Kiszka <jan.kiszka@domain.hid>, xenomai@xenomai.org
Subject: Re: [Xenomai-core] No hardware interrupts with xenomai on ppc405
Date: Wed, 13 Sep 2006 14:38:47 +0200 [thread overview]
Message-ID: <4507FBD7.5010008@domain.hid> (raw)
In-Reply-To: <1158147598.5066.30.camel@domain.hid>
Philippe Gerum wrote:
> On Wed, 2006-09-13 at 13:36 +0200, Philippe Gerum wrote:
>> On Wed, 2006-09-13 at 12:34 +0200, Wolfgang Grandegger wrote:
>>> Philippe Gerum wrote:
>>>> On Tue, 2006-09-12 at 12:37 +0200, Wolfgang Grandegger wrote:
>>>>> Matthias Fuchs wrote:
>>>>>> On Monday 11 September 2006 20:13, Wolfgang Grandegger wrote:
>>>>>>> In 2.6 the interrupts are disabled by default. Then the attached patch
>>>>>>> for Xenomai should help.
>>>>>>>
>>>>>>> Wolfgang.
>>>>>>>
>>>>>> Your patch also works fine. Now what's the recommended solution? I noticed
>>>>>> that Philippe already checked in an Adeos fix.
>>>>> As mentioned, in Linux 2.6 (generic IRQ layer), IRQs are disabled by
>>>>> default in kernel/irq/handle.c:
>>>>>
>>>>> irq_desc_t irq_desc[NR_IRQS] __cacheline_aligned = {
>>>>> [0 ... NR_IRQS-1] = {
>>>>> .status = IRQ_DISABLED,
>>>>> .handler = &no_irq_type,
>>>>> .lock = SPIN_LOCK_UNLOCKED
>>>>> }
>>>>> };
>>>>>
>>>>> Till now, I haven't found IPIPE/Xenomai related code removing the
>>>>> IRQ_DISABLED bit. But I wonder why it's working for x86. Maybe I have
>>>>> missed something.
>>>>>
>>>>> In Linux 2.4, the "status" field is initialized to 0 (in
>>>>> arch/ppc/kernel/irq.c) not making trouble:
>>>>>
>>>>> irq_desc_t irq_desc[NR_IRQS] __cacheline_aligned =
>>>>> { [0 ... NR_IRQS-1] = { 0, NULL, NULL, 0, SPIN_LOCK_UNLOCKED}};
>>>>>
>>>>> At least my CAN PCI card on a MPC5200 works fine.
>>>>>
>>>>> Philippe, do we really need these ugly PIC patches?
>>>> Not anymore, since we decided to stop supporting a tortuous use case
>>>> where some IRQ channel could be shared between a Xenomai ISR and a Linux
>>>> handler for handling mixed RT/non-RT devices (which was something of a
>>>> bugous design anyway). Doing so, the patch was about preventing
>>>> IRQ_INPROGRESS to block IRQ reenabling requests issued from a Xenomai
>>>> ISR (i.e. in case a RT interrupt preempts the regular Linux handler for
>>>> the same IRQ channel).
>>>>
>>>> The problem I see now, is that removing the work-arounds from the
>>>> various PIC code would void the ability to use recent Adeos patches with
>>>> older Xenomai releases. I'm not opposed to that, provided we backport
>>>> your fix to 2.1.x and above, but this is an issue we should keep in
>>>> mind. Perhaps the next Adeos patches should even make un-fixed Xenomai
>>>> releases choke at compilation time.
>>> We could also set the relevant status field bits to 0 somewhere in the
>>> IPIPE-patch when the IRQ is requested or overtaken. I think this is a
>>> general issue (not only on PowerPC).
>> This would not clear the issue for IRQ_INPROGRESS, which is raised upon
>> IRQ handling.
>
> I mean this would not fix all the use cases, but this would be
> sufficient to solve the non-tortuous ones, I agree. So yes, IRQ_DISABLED
> could just be cleared in ipipe_virtualize_irq_from(), and that should be
> enough.
Ok, should I fix that and remove all PowerPC PIC patches already for the
Adeos iPipe PPC patch for 2.6.18rc6 I'm currently working on?
Wolfgang.
next prev parent reply other threads:[~2006-09-13 12:38 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-10 10:40 [Xenomai-core] No hardware interrupts with xenomai on ppc405 Matthias Fuchs
2006-09-10 11:02 ` Wolfgang Grandegger
2006-09-11 8:58 ` Matthias Fuchs
2006-09-11 10:00 ` Wolfgang Grandegger
2006-09-11 10:20 ` Philippe Gerum
2006-09-11 12:02 ` Matthias Fuchs
2006-09-11 12:20 ` Wolfgang Grandegger
2006-09-11 13:09 ` Philippe Gerum
2006-09-11 14:22 ` Jan Kiszka
2006-09-11 15:32 ` Philippe Gerum
2006-09-11 15:46 ` Wolfgang Grandegger
2006-09-11 17:04 ` Matthias Fuchs
2006-09-11 18:13 ` Wolfgang Grandegger
2006-09-12 7:32 ` Matthias Fuchs
2006-09-12 10:37 ` Wolfgang Grandegger
2006-09-13 10:06 ` Philippe Gerum
2006-09-13 10:34 ` Wolfgang Grandegger
2006-09-13 11:36 ` Philippe Gerum
2006-09-13 11:39 ` Philippe Gerum
2006-09-13 12:38 ` Wolfgang Grandegger [this message]
2006-09-13 12:45 ` Philippe Gerum
2006-09-13 12:50 ` Philippe Gerum
2006-09-15 14:18 ` Philippe Gerum
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=4507FBD7.5010008@domain.hid \
--to=wg@domain.hid \
--cc=jan.kiszka@domain.hid \
--cc=rpm@xenomai.org \
--cc=xenomai@xenomai.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.