Re: 3c59x & Cat 4003 Ethernet Lockups

From: Matthias Urlichs (smurf@noris.net)
Date: Thu May 04 2000 - 10:58:43 EDT

  • Next message: Adam J. Richter: "Patch: pre7-4: Update all (at least x86) net drivers for netdevice->name change"

    Hi,

    Jeff Garzik:
    >
    > Something I was wondering... would the following make sense/be a good
    > idea in today's net drivers?
    >
    I like the general idea, except for ...

    > netdev_interrupt()
    >
    > stop card from generating interrupts (IntrMask &= ~(TX|RX))
    > if (status & (TX|RX))
    > mark tasklet/softirq
    > { handle weird interrupts like RxErr, etc. }
    >
    ... if you do it this way, any weird interrupt will lock out TX/RX.
    Also, you increase latency, which is a Bad Thing.

    Better:

    > if (status & ~(TX|RX))
    > { handle weird interrupts like RxErr, etc. }
    > if (status & (TX|RX))
    > process a number of packets, or until out-of-memory or whatever
    > if (packets left)
    > stop card from generating interrupts (IntrMask &= ~(TX|RX))
    > mark tasklet/softirq

    -- 
    Matthias Urlichs  |  noris network GmbH   |   smurf@noris.de  |  ICQ: 20193661
    The quote was selected randomly. Really.       |        http://smurf.noris.de/
    -- 
    Who would have predicted... that Dubcek, who brought the tanks in in
    Czechoslovakia in 1968 is now being proclaimed a hero in Czechoslovakia.
    Unbelievable. 
    		-- Vice President Dan Quayle
                       Actually, Dubcek was the leader of the Prague Spring.
    

    - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



    This archive was generated by hypermail 2b29 : Thu May 04 2000 - 11:36:52 EDT