• Julian Wiedmann's avatar
    s390/qeth: add TX NAPI support for IQD devices · e53edf74
    Julian Wiedmann authored
    Due to their large MTU and potentially low utilization of TX buffers,
    IQD devices in particular require fast TX recycling. This makes them
    a prime candidate for a TX NAPI path in qeth.
    
    qeth_tx_poll() uses the recently introduced qdio_inspect_queue() helper
    to poll the TX queue for completed buffers. To avoid hogging the CPU for
    too long, we yield to the stack after completing an entire queue's worth
    of buffers.
    While IQD is expected to transfer its buffers synchronously (and thus
    doesn't support TX interrupts), a timer covers for the odd case where a
    TX buffer doesn't complete synchronously. Currently this timer should
    only ever fire for
    (1) the mcast queue,
    (2) the occasional race, where the NAPI poll code observes an update to
        queue->used_buffers while the TX doorbell hasn't been issued yet.
    Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    e53edf74
qeth_core_main.c 166 KB