From fc9f1acd082b8af6936b6dc9d8ad1828b8b47aaa Mon Sep 17 00:00:00 2001 From: Qing Huang Date: Wed, 18 Feb 2015 11:39:05 -0800 Subject: [PATCH] mlx4_vnic: set mod param "lro_num" default value to 0 to disable LRO feature Three reasons for us to disable Large Receive Offload in uek4/vnic driver 1. Some of vnic required LRO related kernel code has been removed from upstream by commit# 24245a1b055df246dc94517c1a8b1fdfe7668da0 2. uek4/vnic has better performance on bare metal than uek3/vnic (with LRO support) when running iperf/tcp 3. LRO has potential performance impact on TCP in virtualized environment Signed-off-by: Qing Huang --- drivers/net/ethernet/mellanox/mlx4_vnic/vnic_data_ib.c | 3 +++ drivers/net/ethernet/mellanox/mlx4_vnic/vnic_param.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx4_vnic/vnic_data_ib.c b/drivers/net/ethernet/mellanox/mlx4_vnic/vnic_data_ib.c index ba6e93bb85ce..0c3e6184210c 100644 --- a/drivers/net/ethernet/mellanox/mlx4_vnic/vnic_data_ib.c +++ b/drivers/net/ethernet/mellanox/mlx4_vnic/vnic_data_ib.c @@ -516,6 +516,9 @@ static void vnic_ib_handle_rx_wc(struct vnic_login *login, /* processed for LRO */ #if defined(CONFIG_COMPAT_LRO_ENABLED) + /* need complete LRO support code from either mlxn ofed or + * stock linux kernel + */ lro_receive_frags(&rx_res->lro, frags, packet_length, packet_length, NULL, 0); #endif diff --git a/drivers/net/ethernet/mellanox/mlx4_vnic/vnic_param.c b/drivers/net/ethernet/mellanox/mlx4_vnic/vnic_param.c index 56751aa75274..6cbf3a1575f1 100644 --- a/drivers/net/ethernet/mellanox/mlx4_vnic/vnic_param.c +++ b/drivers/net/ethernet/mellanox/mlx4_vnic/vnic_param.c @@ -33,7 +33,7 @@ #include "vnic.h" #include "vnic_fip.h" -u32 vnic_lro_num = VNIC_MAX_LRO_DESCS; +u32 vnic_lro_num; u32 vnic_net_admin = 1; u32 vnic_child_max = VNIC_CHILD_MAX; u32 vnic_tx_rings_num = 0; @@ -119,7 +119,7 @@ MODULE_PARM_DESC(sa_query, "Query SA for each IB address and ignore gateway assi #if !(defined(NETIF_F_GRO) && !defined(_BP_NO_GRO)) module_param_named(lro_num, vnic_lro_num, int, 0444); -MODULE_PARM_DESC(lro_num, "Number of LRO sessions per ring, use 0 to disable [default 32, max 32]"); +MODULE_PARM_DESC(lro_num, "Number of LRO sessions per ring, use 0 to disable [default 0, max 32]"); #endif #ifdef CONFIG_MLX4_VNIC_DEBUG -- 2.50.1