]> git.baikalelectronics.ru Git - kernel.git/commit
s390/qeth: improve completion of pending TX buffers
authorJulian Wiedmann <jwi@linux.ibm.com>
Tue, 9 Mar 2021 16:52:19 +0000 (17:52 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 10 Mar 2021 00:14:54 +0000 (16:14 -0800)
commitd65749791942b17b528e823ff5397514e311dd1e
treeed6471000e27d21c53db9041e00817ee0b5293ee
parent8c0b0922ecbbac59a5a29d13cb7a5351e12d07b6
s390/qeth: improve completion of pending TX buffers

The current design attaches a pending TX buffer to a custom
single-linked list, which is anchored at the buffer's slot on the
TX ring. The buffer is then checked for final completion whenever
this slot is processed during a subsequent TX NAPI poll cycle.

But if there's insufficient traffic on the ring, we might never make
enough progress to get back to this ring slot and discover the pending
buffer's final TX completion. In particular if this missing TX
completion blocks the application from sending further traffic.

So convert the custom single-linked list code to a per-queue list_head,
and scan this list on every TX NAPI cycle.

Fixes: 83e8926a5353 ("qeth: exploit asynchronous delivery of storage blocks")
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/s390/net/qeth_core.h
drivers/s390/net/qeth_core_main.c