]> 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)
commitd409fe566f23f151f01c74a139afcfcc7df9f2e6
treeed6471000e27d21c53db9041e00817ee0b5293ee
parent4d7589efb7fb62069b41ea0e133a347f3d2fce10
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: a6784ace8198 ("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