qeth: Fix HiperSockets performance regression
authorStefan Raspl <raspl@linux.vnet.ibm.com>
Mon, 21 Jan 2013 02:30:23 +0000 (02:30 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 21 Jan 2013 18:51:15 +0000 (13:51 -0500)
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>
drivers/s390/net/qeth_core_main.c

index 3535b13..0d8cdff 100644 (file)
@@ -4700,7 +4700,7 @@ static int qeth_qdio_establish(struct qeth_card *card)
        init_data.output_sbal_addr_array = (void **) out_sbal_ptrs;
        init_data.output_sbal_state_array = card->qdio.out_bufstates;
        init_data.scan_threshold =
-               (card->info.type == QETH_CARD_TYPE_IQD) ? 8 : 32;
+               (card->info.type == QETH_CARD_TYPE_IQD) ? 1 : 32;
 
        if (atomic_cmpxchg(&card->qdio.state, QETH_QDIO_ALLOCATED,
                QETH_QDIO_ESTABLISHED) == QETH_QDIO_ALLOCATED) {