mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* RE: CPU stall with TP-Link wifi PCIe card
@ 2016-12-01  0:48 Bharat Kumar Gogada
  2016-12-01  9:41 ` Thomas Gleixner
  0 siblings, 1 reply; 4+ messages in thread
From: Bharat Kumar Gogada @ 2016-12-01  0:48 UTC (permalink / raw)
  To: linux-kernel, linux-pci
  Cc: Bjorn Helgaas, Marc Zyngier, arnd, qnguyen, jiang.liu, tglx,
	sudeep.holla

After further debugging found that irq_enable is not being invoked by kernel in kernel/irq/chip.c after the few interrupts when we do wlan scan.

In ARM64, when an interrupt arises who invokes irq_disable(struct irq_desc *desc)/irq_enable(struct irq_desc *desc)
functions. 

>From my debugging for successful interrupt handling irq_disable->handler->irq_enabling is happening,
irrespective of IRQD_IRQ_DISABLED state, is it correct ?

Regards,
Bharat

> 
> Just to add, im using 4.6 kernel version. And the card is working on ARM, X86
> machine.
> 
> > Subject: CPU stall with TP-Link wifi PCIe card
> >
> > Hi,
> >
> > We are testing TP-link wifi PCIe card(TL-WDN4800) on our soc
> > (pcie-xilinx- nwl.c). This card is using legacy interrupts and it
> > doesn't support MSI.
> >
> > When we do scan on wifi interface(using "iw dev wlan0 scan") cpu is
> > getting stalled making whole system hang.
> >
> > After debugging found that IRQ is being disabled after getting 1 or 2
> > interrupts immediately after we run the scan command.
> >
> > But interrupts are being received to root port continuously but not
> > being serviced by EP due to following condition, due to continuous
> > interrupts cpu is getting stalled.
> >
> > In handle_simple_irq:
> >
> > if (unlikely(!desc->action || irqd_irq_disabled(&desc->irq_data))) {
> >                 desc->istate |= IRQS_PENDING;
> >                 goto out_unlock;
> >   }
> >
> > The irqd_irq_disabled(&desc->irq_data) is returning 1 after 1 or 2
> > interrupts after we scan.
> >
> > Can any one tell why irq is going into disabled state ?
> >
> > What might be the source that's making it go into disabled state ?
> >
> > Thanks & Regards,
> > Bharat
> >

^ permalink raw reply	[flat|nested] 4+ messages in thread
* RE: CPU stall with TP-Link wifi PCIe card
@ 2016-11-30 16:50 Bharat Kumar Gogada
  0 siblings, 0 replies; 4+ messages in thread
From: Bharat Kumar Gogada @ 2016-11-30 16:50 UTC (permalink / raw)
  To: linux-kernel, linux-pci; +Cc: Bjorn Helgaas, Marc Zyngier, arnd, manoha

Just to add, im using 4.6 kernel version. And the card is working on ARM, X86 machine.

> Subject: CPU stall with TP-Link wifi PCIe card
> 
> Hi,
> 
> We are testing TP-link wifi PCIe card(TL-WDN4800) on our soc (pcie-xilinx-
> nwl.c). This card is using
> legacy interrupts and it doesn't support MSI.
> 
> When we do scan on wifi interface(using "iw dev wlan0 scan") cpu is getting
> stalled
> making whole system hang.
> 
> After debugging found that IRQ is being disabled after getting 1 or 2 interrupts
> immediately after we run the scan command.
> 
> But interrupts are being received to root port continuously but not being
> serviced by EP due to following
> condition, due to continuous interrupts cpu is getting stalled.
> 
> In handle_simple_irq:
> 
> if (unlikely(!desc->action || irqd_irq_disabled(&desc->irq_data))) {
>                 desc->istate |= IRQS_PENDING;
>                 goto out_unlock;
>   }
> 
> The irqd_irq_disabled(&desc->irq_data) is returning 1 after 1 or 2 interrupts after
> we scan.
> 
> Can any one tell why irq is going into disabled state ?
> 
> What might be the source that's making it go into disabled state ?
> 
> Thanks & Regards,
> Bharat
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread
* CPU stall with TP-Link wifi PCIe card
@ 2016-11-30 13:32 Bharat Kumar Gogada
  0 siblings, 0 replies; 4+ messages in thread
From: Bharat Kumar Gogada @ 2016-11-30 13:32 UTC (permalink / raw)
  To: linux-kernel, linux-pci; +Cc: Bjorn Helgaas, Marc Zyngier, arnd, manoha

Hi, 

We are testing TP-link wifi PCIe card(TL-WDN4800) on our soc (pcie-xilinx-nwl.c). This card is using 
legacy interrupts and it doesn't support MSI.

When we do scan on wifi interface(using "iw dev wlan0 scan") cpu is getting stalled 
making whole system hang.

After debugging found that IRQ is being disabled after getting 1 or 2 interrupts 
immediately after we run the scan command.

But interrupts are being received to root port continuously but not being serviced by EP due to following 
condition, due to continuous interrupts cpu is getting stalled. 

In handle_simple_irq:

if (unlikely(!desc->action || irqd_irq_disabled(&desc->irq_data))) {
                desc->istate |= IRQS_PENDING;
                goto out_unlock;
  }    

The irqd_irq_disabled(&desc->irq_data) is returning 1 after 1 or 2 interrupts after we scan.

Can any one tell why irq is going into disabled state ?

What might be the source that's making it go into disabled state ?

Thanks & Regards,
Bharat

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

end of thread, other threads:[~2016-12-01  9:45 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-01  0:48 CPU stall with TP-Link wifi PCIe card Bharat Kumar Gogada
2016-12-01  9:41 ` Thomas Gleixner
  -- strict thread matches above, loose matches on Subject: below --
2016-11-30 16:50 Bharat Kumar Gogada
2016-11-30 13:32 Bharat Kumar Gogada

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®