linux/drivers/s390
Julian Wiedmann 9c159bbc14 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>
2020-04-06 13:13:51 +02:00
..
block s390 updates for the 5.7 merge window 2020-04-04 09:45:50 -07:00
char s390: use fallthrough; 2020-03-25 12:39:37 +01:00
cio s390/qdio: clear DSCI early for polling drivers 2020-04-06 13:13:51 +02:00
crypto s390 updates for the 5.7 merge window 2020-04-04 09:45:50 -07:00
net s390/qdio: remove cdev from init_data 2020-04-06 13:13:50 +02:00
scsi s390/qdio: remove cdev from init_data 2020-04-06 13:13:50 +02:00
virtio virtio/s390: fix race on airq_areas[] 2019-07-26 13:36:18 +02:00
Makefile s390: remove pointless drivers-y in drivers/s390/Makefile 2019-09-16 13:21:51 +02:00