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 3535b134bd317343d88c88c9765b08e3ee59debc..0d8cdff818139e8ee267f57df08c78494c1592d0 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) {