[openib-general] Performance Degradation with OFED v. Voltaire

Or Gerlitz ogerlitz at voltaire.com
Mon Dec 18 03:19:05 PST 2006


Michael S. Tsirkin wrote:
>> I guess one last thing to check would be the MTU being used for the RC
>> connections.  Since this is PCI-X HW then the MTU should be 1024 for
>> best throughput (instead of the max MTU of 2048).

> The MTU issue is described in the OFED release notes.
> You must turn the Tavor work-around for it on in opensm.
> This was introduced late in release cycle to it was deemed safer
> to make it off by default.

Michael,

Let me see i follow you correct: a user must enable the tavor quirk in 
the **openSM** ? what about the cma_tavor_quirk? and what about users 
who want to use OFED with commercial/3rd party SMs ??? looking in the 
OFED 1.1 docs it is mentioned that either way should work.

Looking on kernel_patches/fixes/cma_tavor_quirk.patch of OFED 1.1 
(below) the thing seems to me uncompleted as the 
IB_SA_PATH_REC_MTU_SELECTOR and IB_SA_PATH_REC_MTU bits are not set in 
the component mask of the path record query done by the cma, am i 
missing something?

Or.

> Tavor systems get better performance with 1K MTU. Since there does
> not seem to be any way to find out whether the remote system uses Tavor,
> add an option to limit the MTU globally.
> 
> Signed-off-by: Michael S. Tsirkin <mst at mellanox.co.il>
> 
> Index: linux-2.6.18-rc2-devel/drivers/infiniband/core/cma.c
> ===================================================================
> --- linux-2.6.18-rc2-devel.orig/drivers/infiniband/core/cma.c   2006-09-11 16:01:37.000000000 +0300
> +++ linux-2.6.18-rc2-devel/drivers/infiniband/core/cma.c        2006-09-13 18:51:45.000000000 +0300
> @@ -48,6 +48,10 @@ MODULE_AUTHOR("Sean Hefty");
>  MODULE_DESCRIPTION("Generic RDMA CM Agent");
>  MODULE_LICENSE("Dual BSD/GPL");
> 
> +static int tavor_quirk = 0;
> +module_param_named(tavor_quirk, tavor_quirk, int, 0644);
> +MODULE_PARM_DESC(tavor_quirk, "Tavor performance quirk: limit MTU to 1K if > 0");
> +
>  #define CMA_CM_RESPONSE_TIMEOUT 20
>  #define CMA_MAX_CM_RETRIES 3
> 
> @@ -1123,6 +1127,11 @@ static int cma_query_ib_route(struct rdm
>         path_rec.pkey = cpu_to_be16(ib_addr_get_pkey(addr));
>         path_rec.numb_path = 1;
> 
> +       if (tavor_quirk) {
> +               path_rec.mtu_selector = IB_SA_LT;
> +               path_rec.mtu = IB_MTU_2048;
> +       }
> +
>         id_priv->query_id = ib_sa_path_rec_get(id_priv->id.device,
>                                 id_priv->id.port_num, &path_rec,
>                                 IB_SA_PATH_REC_DGID | IB_SA_PATH_REC_SGID |






More information about the general mailing list