Julian Wiedmann 54a50941b7 s390/qeth: stop/wake TX queues based on their fill level
Current xmit code only stops the txq after attempting to fill an
IO buffer that hasn't been TX-completed yet. In many-connection
scenarios, this can result in frequent rejected TX attempts, requeuing
of skbs with NETDEV_TX_BUSY and extra overhead.

Now that we have a proper 1-to-1 relation between stack-side txqs and
our HW Queues, overhaul the stop/wake logic so that the xmit code
stops the txq as needed.
Given that we might map multiple skbs into a single buffer, it's crucial
to ensure that the queue always provides an _entirely_ empty IO buffer.
Otherwise large skbs (eg TSO) might not fit into the last available
buffer. So whenever qeth_do_send_packet() first utilizes an _empty_
buffer, it updates & checks the used_buffers count.

This now ensures that an skb passed to qeth_xmit() can always be mapped
into an IO buffer, so remove all of the -EBUSY roll-back handling in the
TX path. We preserve the minimal safety-checks ("Is this IO buffer
really available?"), just in case some nasty future bug ever attempts to
corrupt an in-use buffer.

Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-04-17 10:33:59 -07:00
..
2019-04-04 14:48:11 -10:00
2019-03-06 09:41:12 -08:00
2019-03-16 13:05:32 -07:00
2019-03-29 03:04:47 +01:00
2019-03-06 14:18:59 -08:00
2019-03-15 14:37:46 -07:00
2019-03-08 10:02:58 -08:00
2019-03-07 08:59:26 -07:00
2019-03-10 11:54:48 -07:00
2019-03-09 15:53:03 -08:00
2019-03-16 13:05:32 -07:00
2019-03-10 10:17:23 -07:00
2019-03-14 09:00:06 -07:00
2019-03-09 14:57:08 -08:00
2019-03-06 09:41:12 -08:00
2019-03-29 15:31:16 +01:00
2019-03-10 12:47:57 -07:00
2019-03-15 14:22:59 -07:00
2019-03-11 11:22:15 -07:00
2019-04-07 06:12:10 -10:00
2019-03-10 12:29:52 -07:00