2223318c28
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> |
||
---|---|---|
.. | ||
airq.c | ||
blacklist.c | ||
blacklist.h | ||
ccwgroup.c | ||
ccwreq.c | ||
chp.c | ||
chp.h | ||
chsc_sch.c | ||
chsc_sch.h | ||
chsc.c | ||
chsc.h | ||
cio_debug.h | ||
cio.c | ||
cio.h | ||
cmf.c | ||
crw.c | ||
css.c | ||
css.h | ||
device_fsm.c | ||
device_id.c | ||
device_ops.c | ||
device_pgid.c | ||
device_status.c | ||
device.c | ||
device.h | ||
eadm_sch.c | ||
eadm_sch.h | ||
fcx.c | ||
idset.c | ||
idset.h | ||
io_sch.h | ||
ioasm.c | ||
ioasm.h | ||
isc.c | ||
itcw.c | ||
Makefile | ||
orb.h | ||
qdio_debug.c | ||
qdio_debug.h | ||
qdio_main.c | ||
qdio_setup.c | ||
qdio_thinint.c | ||
qdio.h | ||
scm.c | ||
trace.c | ||
trace.h | ||
vfio_ccw_async.c | ||
vfio_ccw_chp.c | ||
vfio_ccw_cp.c | ||
vfio_ccw_cp.h | ||
vfio_ccw_drv.c | ||
vfio_ccw_fsm.c | ||
vfio_ccw_ops.c | ||
vfio_ccw_private.h | ||
vfio_ccw_trace.c | ||
vfio_ccw_trace.h |