Patch available for shared em interrupts (Re: em, bge, network problems survey.)



On Thu, Oct 05, 2006 at 04:05:52PM -0400, Kris Kennaway wrote:
On Wed, Oct 04, 2006 at 05:14:27PM -0600, Scott Long wrote:
All,

I'm seeing some patterns here with all of the network driver problem
reports, but I need more information to help narrow it down further.
I ask all of you who are having problems to take a minute to fill
out this survey and return it to Kris Kennaway (on cc:) and myself.
Thanks.

1. Are you experiencing network hangs and/or "timeout" messages on the
console? If yes, please provide a _brief_ description of the problem.

OK, next question, to all em users:

If your em device is using a shared interrupt, and you are NOT
experiencing timeout problems when using this device, please let me
know:

Based on successful testing on a machine with shared em interrupt, the
following patch should work around the problem *in that case*.

Note that this patch will not help you if you are not using the em
driver, or if you are seeing the problem with non-shared em interrupt
(I have investigated on such outlier, which seems to be a problem with
a particular model of em hardware and not a generic problem with the
driver).

Index: if_em.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/em/if_em.c,v
retrieving revision 1.65.2.18
diff -u -u -r1.65.2.18 if_em.c
--- if_em.c 25 Aug 2006 12:38:26 -0000 1.65.2.18
+++ if_em.c 5 Oct 2006 22:05:45 -0000
@@ -2086,7 +2086,7 @@
taskqueue_start_threads(&adapter->tq, 1, PI_NET, "%s taskq",
device_get_nameunit(adapter->dev));
if ((error = bus_setup_intr(dev, adapter->res_interrupt,
- INTR_TYPE_NET | INTR_FAST, em_intr_fast, adapter,
+ INTR_TYPE_NET | INTR_MPSAFE, em_intr_fast, adapter,
&adapter->int_handler_tag)) != 0) {
device_printf(dev, "Failed to register fast interrupt "
"handler: %d\n", error);

Please let Scott and I know whether or not this patch works for you
(in addition to the information previously requested, if you have not
already sent it). Unfortunately it is only a workaround, but it
points to an underlying problem with fast interrupt handlers on a
shared irq that can be studied separately.

Kris

Attachment: pgpiybGNiuJAU.pgp
Description: PGP signature



Relevant Pages

  • Re: 2.6.19 and up to 2.6.20-rc2 Ethernet problems x86_64
    ... If the system fails in ACPI mode, but works in non-ACPI mode, ... Using ACPI for SMP configuration information ... Using IOAPIC for interrupt routing ... Non-volatile memory driver v1.2 ...
    (Linux-Kernel)
  • Re: [PATCH] uio: User IRQ Mode
    ... This patch adds a "User IRQ Mode" to UIO. ... In this mode the user space driver ... is responsible for acknowledging and re-enabling the interrupt. ...
    (Linux-Kernel)
  • [PATCH 06/13] Char: cyclades, overall cleanup
    ... * Prevent users from opening non-existing Z ports. ... * Implemented full support for non-standard baud rates. ... * Driver now reports physical instead of virtual memory addresses. ... * Fixed SMP locking in Cyclom-Y interrupt handler. ...
    (Linux-Kernel)
  • [PATCH 13/79] cyclades: overall cleanup
    ... * Prevent users from opening non-existing Z ports. ... * Implemented full support for non-standard baud rates. ... * Driver now reports physical instead of virtual memory addresses. ... * Fixed SMP locking in Cyclom-Y interrupt handler. ...
    (Linux-Kernel)
  • PANIC [2.4.27] usb-storage
    ... PCI Interrupt Link enabled at IRQ 3 ... switching to colour frame buffer device 100x37 ... RAMDISK driver initialized: 16 RAM disks of 32000K size 1024 blocksize ... Initializing USB Mass Storage driver... ...
    (Linux-Kernel)