]> git.baikalelectronics.ru Git - kernel.git/commit
s390/qdio: remove 'merge_pending' mechanism
authorJulian Wiedmann <jwi@linux.ibm.com>
Sat, 30 Jan 2021 12:22:56 +0000 (13:22 +0100)
committerVasily Gorbik <gor@linux.ibm.com>
Sat, 13 Feb 2021 16:17:55 +0000 (17:17 +0100)
commit660a65ba6cc79a3a25e4d039af5f1b14be60891b
tree108313403728d793c2de3223f6082d11d0ea006b
parent8cc2b4113fc14fbe6fa38051944564e19a20a05b
s390/qdio: remove 'merge_pending' mechanism

For non-QEBSM devices, get_buf_states() merges PENDING and EMPTY buffers
into a single group of finished buffers. To allow the upper-layer driver
to differentiate between the two states, qdio_check_pending() looks at
each buffer's state again and sets the sbal_state flag to
QDIO_OUTBUF_STATE_FLAG_PENDING accordingly.

So effectively we're spending overhead on _every_ Output Queue
inspection, just to avoid some additional TX completion calls in case
a group of buffers has completed with mixed EMPTY / PENDING state.
Given that PENDING buffers should rarely occur, this is a bad trade-off.
In particular so as the additional checks in get_buf_states() affect
_all_ device types (even those that don't use the PENDING state).

Rip it all out, and just report the PENDING completions separately as
we already do for QEBSM devices.

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>
arch/s390/include/asm/qdio.h
drivers/s390/cio/qdio_main.c
drivers/s390/net/qeth_core_main.c