• Julian Wiedmann's avatar
    s390/qdio: clear DSCI early for polling drivers · 9c159bbc
    Julian Wiedmann authored
    Polling drivers in a configuration with 1 Input Queue currently keep
    their DSCI armed all the way through the poll cycle, until
    qdio_start_irq() clears it.
    
    _Any_ intermittent QDIO interrupt delivered to tiqdio_thinint_handler()
    will thus cause
    1) the 'adapter_int' statistic to be incremented,
    2) a call to tiqdio_call_inq_handlers() for this device, and then
    3) the 'int_discarded' statistics to be incremented.
    
    This causes overhead & complexity in the IRQ path, along with ambiguity
    in the statistics.
    On the other hand the device should be in IRQ avoidance mode during a
    poll cycle, so there won't be a lot of DSCI ping-pong that this
    micro-optimization could prevent.
    
    So align the DSCI handling with what we already do for devices with
    multiple Input Queues: clear it right away while processing the IRQ.
    
    For the non-polling path this means that we no longer need to handle
    the 1-queue case separately.
    Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
    Reviewed-by: default avatarBenjamin Block <bblock@linux.ibm.com>
    Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    9c159bbc
qdio_main.c 46.1 KB