diff options
author | Julian Wiedmann <jwi@linux.ibm.com> | 2020-03-20 14:00:00 +0100 |
---|---|---|
committer | Vasily Gorbik <gor@linux.ibm.com> | 2020-04-06 13:13:51 +0200 |
commit | 9c159bbc14ba196d590dc1a2fe7931ccfe73db98 (patch) | |
tree | b50cb6f7a9fd9fe5274b545e8185324dedc34f9b /lib/crc8.c | |
parent | s390/qdio: inline shared_ind() (diff) | |
download | linux-9c159bbc14ba196d590dc1a2fe7931ccfe73db98.tar.xz linux-9c159bbc14ba196d590dc1a2fe7931ccfe73db98.zip |
s390/qdio: clear DSCI early for polling drivers
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: Julian Wiedmann <jwi@linux.ibm.com>
Reviewed-by: Benjamin Block <bblock@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Diffstat (limited to 'lib/crc8.c')
0 files changed, 0 insertions, 0 deletions