All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/1] NIU: fix spurious interrupts
@ 2009-05-11 19:00 Hong H. Pham
  2009-05-11 19:00 ` [PATCH 1/1] " Hong H. Pham
  2009-05-19  5:09 ` [PATCH 0/1] " David Miller
  0 siblings, 2 replies; 13+ messages in thread
From: Hong H. Pham @ 2009-05-11 19:00 UTC (permalink / raw)
  To: netdev; +Cc: Hong H. Pham

Hi,

I've tracked down a hang on a SPARC64 system (a Netra T5220 with 64 strands)
whenever the NIU is handling lots of receive traffic.  The hang is
reproducible by running iperf with multiple TCP streams (eg. iperf -P16 ...),
with the SPARC box being the listener.

I've found that it's possible for an RX DMA interrupt to be triggered
while NAPI is in progress.  When this happens, spurious interrupts will
keep being regenerated which will cause the CPU to hang.  It's too busy
servicing the spurious interrupts, and the NIU NAPI handler (or anything
else on that CPU) never gets a chance to run.

In niu_schedule_napi(), if the logical device interrupt is unconditionally
masked out by calling __niu_fastpath_interrupt(), the hang goes away.

Regards,
Hong



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

end of thread, other threads:[~2009-05-27 16:30 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-11 19:00 [PATCH 0/1] NIU: fix spurious interrupts Hong H. Pham
2009-05-11 19:00 ` [PATCH 1/1] " Hong H. Pham
2009-05-19  5:09 ` [PATCH 0/1] " David Miller
2009-05-19 21:52   ` Hong H. Pham
2009-05-19 22:01     ` David Miller
2009-05-20 15:57       ` Hong H. Pham
2009-05-21  0:37         ` David Miller
2009-05-21 22:18         ` David Miller
2009-05-22  0:40           ` Hong H. Pham
2009-05-22  8:08             ` David Miller
2009-05-22 16:42               ` Hong H. Pham
2009-05-26  6:16                 ` David Miller
2009-05-27 16:29                   ` Hong H. Pham

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.