aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390
diff options
context:
space:
mode:
authorFrank Blaschka <frank.blaschka@de.ibm.com>2011-03-14 18:39:47 -0400
committerDavid S. Miller <davem@davemloft.net>2011-03-14 18:39:47 -0400
commitdcf4ae2dba541eed96afb0ba13e562defb8543e6 (patch)
treee6c116d7f73bc9a38b2e6e804dadcbf8309bed73 /drivers/s390
parent2e588f84f254cca0fc3b9f01297d06799b8c85d3 (diff)
qeth: change some configurations defaults
This patch turns on RX checksum and GRO by default. To improve receiving performance and reduce congestion in case of network bursts we also increase the default number of inbound buffers. Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/s390')
-rw-r--r--drivers/s390/net/qeth_core.h3
-rw-r--r--drivers/s390/net/qeth_core_main.c5
-rw-r--r--drivers/s390/net/qeth_l3_main.c5
3 files changed, 11 insertions, 2 deletions
diff --git a/drivers/s390/net/qeth_core.h b/drivers/s390/net/qeth_core.h
index c5d763ed406e..af3f7b095647 100644
--- a/drivers/s390/net/qeth_core.h
+++ b/drivers/s390/net/qeth_core.h
@@ -225,7 +225,8 @@ static inline int qeth_is_ipa_enabled(struct qeth_ipa_info *ipa,
225/*****************************************************************************/ 225/*****************************************************************************/
226#define QETH_MAX_QUEUES 4 226#define QETH_MAX_QUEUES 4
227#define QETH_IN_BUF_SIZE_DEFAULT 65536 227#define QETH_IN_BUF_SIZE_DEFAULT 65536
228#define QETH_IN_BUF_COUNT_DEFAULT 16 228#define QETH_IN_BUF_COUNT_DEFAULT 64
229#define QETH_IN_BUF_COUNT_HSDEFAULT 128
229#define QETH_IN_BUF_COUNT_MIN 8 230#define QETH_IN_BUF_COUNT_MIN 8
230#define QETH_IN_BUF_COUNT_MAX 128 231#define QETH_IN_BUF_COUNT_MAX 128
231#define QETH_MAX_BUFFER_ELEMENTS(card) ((card)->qdio.in_buf_size >> 12) 232#define QETH_MAX_BUFFER_ELEMENTS(card) ((card)->qdio.in_buf_size >> 12)
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c
index f3d98ac16e9f..25eef304bd47 100644
--- a/drivers/s390/net/qeth_core_main.c
+++ b/drivers/s390/net/qeth_core_main.c
@@ -1026,7 +1026,10 @@ static void qeth_init_qdio_info(struct qeth_card *card)
1026 atomic_set(&card->qdio.state, QETH_QDIO_UNINITIALIZED); 1026 atomic_set(&card->qdio.state, QETH_QDIO_UNINITIALIZED);
1027 /* inbound */ 1027 /* inbound */
1028 card->qdio.in_buf_size = QETH_IN_BUF_SIZE_DEFAULT; 1028 card->qdio.in_buf_size = QETH_IN_BUF_SIZE_DEFAULT;
1029 card->qdio.init_pool.buf_count = QETH_IN_BUF_COUNT_DEFAULT; 1029 if (card->info.type == QETH_CARD_TYPE_IQD)
1030 card->qdio.init_pool.buf_count = QETH_IN_BUF_COUNT_HSDEFAULT;
1031 else
1032 card->qdio.init_pool.buf_count = QETH_IN_BUF_COUNT_DEFAULT;
1030 card->qdio.in_buf_pool.buf_count = card->qdio.init_pool.buf_count; 1033 card->qdio.in_buf_pool.buf_count = card->qdio.init_pool.buf_count;
1031 INIT_LIST_HEAD(&card->qdio.in_buf_pool.entry_list); 1034 INIT_LIST_HEAD(&card->qdio.in_buf_pool.entry_list);
1032 INIT_LIST_HEAD(&card->qdio.init_pool.entry_list); 1035 INIT_LIST_HEAD(&card->qdio.init_pool.entry_list);
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c
index 6a9cc58321a0..142e5f6ef4f3 100644
--- a/drivers/s390/net/qeth_l3_main.c
+++ b/drivers/s390/net/qeth_l3_main.c
@@ -3392,6 +3392,8 @@ static int qeth_l3_setup_netdev(struct qeth_card *card)
3392 if (!(card->info.unique_id & UNIQUE_ID_NOT_BY_CARD)) 3392 if (!(card->info.unique_id & UNIQUE_ID_NOT_BY_CARD))
3393 card->dev->dev_id = card->info.unique_id & 3393 card->dev->dev_id = card->info.unique_id &
3394 0xffff; 3394 0xffff;
3395 if (!card->info.guestlan)
3396 card->dev->features |= NETIF_F_GRO;
3395 } 3397 }
3396 } else if (card->info.type == QETH_CARD_TYPE_IQD) { 3398 } else if (card->info.type == QETH_CARD_TYPE_IQD) {
3397 card->dev = alloc_netdev(0, "hsi%d", ether_setup); 3399 card->dev = alloc_netdev(0, "hsi%d", ether_setup);
@@ -3430,6 +3432,9 @@ static int qeth_l3_probe_device(struct ccwgroup_device *gdev)
3430 card->discipline.output_handler = (qdio_handler_t *) 3432 card->discipline.output_handler = (qdio_handler_t *)
3431 qeth_qdio_output_handler; 3433 qeth_qdio_output_handler;
3432 card->discipline.recover = qeth_l3_recover; 3434 card->discipline.recover = qeth_l3_recover;
3435 if ((card->info.type == QETH_CARD_TYPE_OSD) ||
3436 (card->info.type == QETH_CARD_TYPE_OSX))
3437 card->options.checksum_type = HW_CHECKSUMMING;
3433 return 0; 3438 return 0;
3434} 3439}
3435 3440