Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

qeth: Fix HiperSockets performance regression

Commit 46d3ceab "tcp: TCP Small Queues" has severly degraded
performance for single connection RR workloads on HiperSockets with
MTU >=16K due to a conflict of the TCP Small Queues approach with our
buffer scan threshold which releases buffers not frequently enough yet.
This fix restores performance to the same level as before cited commit.

Signed-off-by: Stefan Raspl <raspl@linux.vnet.ibm.com>
Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Stefan Raspl and committed by
David S. Miller
0fa81cd4 819dc537

+1 -1
+1 -1
drivers/s390/net/qeth_core_main.c
··· 4700 4700 init_data.output_sbal_addr_array = (void **) out_sbal_ptrs; 4701 4701 init_data.output_sbal_state_array = card->qdio.out_bufstates; 4702 4702 init_data.scan_threshold = 4703 - (card->info.type == QETH_CARD_TYPE_IQD) ? 8 : 32; 4703 + (card->info.type == QETH_CARD_TYPE_IQD) ? 1 : 32; 4704 4704 4705 4705 if (atomic_cmpxchg(&card->qdio.state, QETH_QDIO_ALLOCATED, 4706 4706 QETH_QDIO_ESTABLISHED) == QETH_QDIO_ALLOCATED) {