diff between mthca and mlx4 drivers

wondaring why there are two drivers ?

are they independent of each other ?

which firmware/hca onwards mlx4 is intended for ?

Thnx Ali

one more question

how these connectX cards majorly difffers from InfiniHost, is it XRC support OR VPI support OR something else

ConnectX device family has wider set of features compared to InfiniHost family.

XRC for example, is support in ConnectX devices only.

Note that the device support is a function of the OS, driver and firmware, so the proper way to check the device capabilities is to use the RDMA verb: ibv_query_device http://linux.die.net/man/3/ibv_query_device (3) and examine the output (specifically device_cap_flags), which can tell you what capabilities are supported on a given HCA, all the possible capabilities are listed in include/infiniband/verbs.h header file.

Alternatively, you can use the ibv_devinfo http://linux.die.net/man/1/ibv_devinfo (1) utility (with the “-v” flag) to retrieve the information of each HCA port, including the port_cap_flags field.

Which operating system are you using?

About 2-3 years ago (around RHEL/CentOS 6.0 time), I was using Infinihost III cards. From memory, they used the mthca driver (on RHEL/CentOS) at the time.

These days I’m using ConnectX (version 1) cards, which seem to be using mlx4.

I sort of remember reading that the mthca/mlx4 software changed a while ago, with some of the functionality moved around between them. I don’t remember the details in any depth though… and I think that might have just been on ESX drivers or something. (unsure, and it’s been a long day. )

Hi mahesh,

mlx4 is the low level driver for Mellanox ConnectX device family (4th generation adapters), first introduced in 2007:

RFC: “mlx4” drivers for Mellanox ConnectX HCAs [LWN.net] http://lwn.net/Articles/229823/

While mthca, is the driver for the older generation: InfiniHost device family.