• Bryan O'Sullivan's avatar
    [PATCH] IB/ipath: reduce overhead on receive interrupts · 13aef494
    Bryan O'Sullivan authored
    Also count the number of interrupts where that works (fastrcvint).  On any
    interrupt where the port0 head and tail registers are not equal, just call the
    ipath_kreceive code without reading the interrupt status, thus saving the
    approximately 0.25usec processor stall waiting for the read to return.  If any
    other interrupt bits are set, or head==tail, take the normal path, but that
    has been reordered to handle read ahead of pioavail.  Also no longer call
    ipath_kreceive() from ipath_qcheck(), because that just seems to make things
    worse, and isn't really buying us anything, these days.
    
    Also no longer loop in ipath_kreceive(); better to not hold things off too
    long (I saw many cases where we would loop 4-8 times, and handle thousands (up
    to 3500) in a single call).
    Signed-off-by: default avatarDave Olson <dave.olson@qlogic.com>
    Signed-off-by: default avatarBryan O'Sullivan <bryan.osullivan@qlogic.com>
    Cc: "Michael S. Tsirkin" <mst@mellanox.co.il>
    Cc: Roland Dreier <rolandd@cisco.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    13aef494
ipath_stats.c 9.74 KB