lkml.org 
[lkml]   [2000]   [Jan]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: RTL8139 Interrupt line blocked
    Date
    From: "Oleg Drokin" <green@ccssu.crimea.ua>
    > After I started to use RTL8139 in 100 Mbit mode I started to get this
    > under heavy traffic:

    AFAICS, you can ignore these messages:

    > eth3: RTL8139 Interrupt line blocked, status 4.
    > eth3: RTL8139 Interrupt line blocked, status 4.

    The driver uses a timer to recover from hung transceivers. The timer noticed
    that the card has new packets pending, but that the interrupt is not (yet)
    called. How many of these messages do you receive, and how many interrupt
    arrive? (cat /proc/interrupts). It's possible that they are caused by the
    latency between "hardware triggers the interrupt" and "driver has
    acknowledged the interrupt"

    > eth3: SMP simultaneous entry of an interrupt handler.
    rtl8129() is running on both cpus: [i guess because]
    * one cpu because the hardware interrupt arrived
    * one cpu because the timer called the function.

    I guess that "dev->interrupt" enforces the synchronization, but I don't
    understand why "dev->interrupt" is reset to 0:
    rtl8129_interrupt():
    > [...]
    > /* A lock to prevent simultaneous entry bug on Intel SMP machines.
    */
    > if (test_and_set_bit(0, (void*)&dev->interrupt)) {
    > printk(KERN_ERR"%s: SMP simultaneous entry of an interrupt
    handler.\n",
    > dev->name);
    > dev->interrupt = 0; /* Avoid halting machine. */
    > return;
    > }

    --
    Manfred




    -
    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/

    \
     
     \ /
      Last update: 2005-03-22 13:55    [W:0.021 / U:30.796 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site