All of lore.kernel.org
 help / color / mirror / Atom feed
* [Adeos-main] Interrupt handling problem on Compulab EM-X270.
@ 2011-02-22 20:10 Nazarov Sergey
  2011-02-22 20:21 ` Gilles Chanteperdrix
  0 siblings, 1 reply; 3+ messages in thread
From: Nazarov Sergey @ 2011-02-22 20:10 UTC (permalink / raw)
  To: adeos-main

   Hi!
I'm trying to use i-pipe 1.18-01 on ARM XScale-PXA270 based Compulab EM-X270 board. Kernel version is 2.6.33.
With kernel, patched by i-pipe patch, network controller Davicom DM9000 standing unstable: sometimes a lot of packets are losing.
This happens with CONFIG_IPIPE disabled even. The reason is lost interrupts, I see. Network controller uses GPIO line to produce interrupts.
I have found that i-pipe patch changing irq handler handle_irq_edge to handle_irq_level (arch/arm/plat-pxa/gpio.c: pxa_init_gpio) without any conditions.
What's the reason for that changing? The back change to edge-type handler returns network controller to stable state.
   Best regards, Sergey.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Adeos-main] Interrupt handling problem on Compulab EM-X270.
  2011-02-22 20:10 [Adeos-main] Interrupt handling problem on Compulab EM-X270 Nazarov Sergey
@ 2011-02-22 20:21 ` Gilles Chanteperdrix
       [not found]   ` <437861298457092@domain.hid>
  0 siblings, 1 reply; 3+ messages in thread
From: Gilles Chanteperdrix @ 2011-02-22 20:21 UTC (permalink / raw)
  To: Nazarov Sergey; +Cc: adeos-main

Nazarov Sergey wrote:
> Hi! I'm trying to use i-pipe 1.18-01 on ARM XScale-PXA270 based
> Compulab EM-X270 board. Kernel version is 2.6.33. With kernel,
> patched by i-pipe patch, network controller Davicom DM9000 standing
> unstable: sometimes a lot of packets are losing. This happens with
> CONFIG_IPIPE disabled even. The reason is lost interrupts, I see.
> Network controller uses GPIO line to produce interrupts. I have found
> that i-pipe patch changing irq handler handle_irq_edge to
> handle_irq_level (arch/arm/plat-pxa/gpio.c: pxa_init_gpio) without
> any conditions. What's the reason for that changing? The back change
> to edge-type handler returns network controller to stable state. Best
> regards, Sergey.

Does it work with CONFIG_IPIPE enabled?

-- 
                                                                Gilles.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Adeos-main] Interrupt handling problem on Compulab EM-X270.
       [not found]               ` <41131298550043@domain.hid>
@ 2011-02-24 12:37                 ` Gilles Chanteperdrix
  0 siblings, 0 replies; 3+ messages in thread
From: Gilles Chanteperdrix @ 2011-02-24 12:37 UTC (permalink / raw)
  To: Nazarov Sergey; +Cc: Adeos

Nazarov Sergey wrote:
> Test:
> non-RT load: dd if=/dev/zero of=/dev/null + ping flud from another host,
> RT-load: 3 latency tests (user, kernel and timer task) + switchtest,
> worked for 1 hour without visible problems (0% of ping packets lost).
>    Sergey.

Ok. The problem is that on some machines, we get a lockup when using the
edge handler, because the edge handler does not mask the interrupt line,
and so the interrupt triggers again. I guess this must happens with
devices having a level semantic.

But anyway, I prefer some non real-time interrupts lost, than a complete
lockup, so, the code will stay the way it is, I suggest you modify the
board/driver code to change the flow handler of only the line you use.
This change could be integrated into the I-pipe patch.

-- 
                                                                Gilles.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-02-24 12:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-22 20:10 [Adeos-main] Interrupt handling problem on Compulab EM-X270 Nazarov Sergey
2011-02-22 20:21 ` Gilles Chanteperdrix
     [not found]   ` <437861298457092@domain.hid>
     [not found]     ` <4D64E2A4.7080105@domain.hid>
     [not found]       ` <661661298458316@domain.hid>
     [not found]         ` <4D64E810.4040005@domain.hid>
     [not found]           ` <549401298459119@domain.hid>
     [not found]             ` <4D64F94E.5040407@domain.hid>
     [not found]               ` <41131298550043@domain.hid>
2011-02-24 12:37                 ` Gilles Chanteperdrix

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.