RE: InfiniBand/RDMA merger plans for 2.6.36

2010-08-06 Thread Tziporet Koren
It's not personal -- it was a combination of when things were ready and when I had time to work on things, and unfortunately it all lined up so I wasn't able to get anything big queued up this cycle. Can you confirm it will be in 2.6.37? Tziporet -- To unsubscribe from this list: send the

{RFC] ibv_post_send()/ibv_post_recv() kernel path optimizations

2010-08-06 Thread Walukiewicz, Miroslaw
Currently the ibv_post_send()/ibv_post_recv() path through kernel (using /dev/infiniband/rdmacm) could be optimized by removing dynamic memory allocations on the path. Currently the transmit/receive path works following way: User calls ibv_post_send() where vendor specific function is called.

RE: [PATCH 4/42 v2] drivers/infiniband/hw/nes: Adjust confusing if indentation

2010-08-06 Thread Tung, Chien Tin
I think the white space is meant to look like this. I did look at whether the sq_cqes = 0; should only be done if netif_queue_stopped(). In the end I decided this was what was intended, but it would be better if someone more familiar with the code reviewed it. Reported-by: Julia Lawall

Re: yet again the atomic operations

2010-08-06 Thread Rui Machado
Hi there, There are two kinds supported. QLogic's driver does them in the host driver so they are atomic with respect to all the CPUs in the host. Mellanox uses HCA wide atomic which means the HCA will do a memory read/write without allowing other reads or writes from different QP operations

[PATCHv9 0/11] IBoE support to Infiniband

2010-08-06 Thread Eli Cohen
IBoE allows running the IB transport protocol using Ethernet frames, enabling the deployment of IB semantics on lossless Ethernet fabrics. IBoE packets are standard Ethernet frames with an IEEE assigned Ethertype, a GRH, unmodified IB transport headers and payload. IB subnet management and SA

[PATCHv9 01/12] IB/umad: Enable support only for IB ports

2010-08-06 Thread Eli Cohen
Initialize umad context only for Infiniband (as opposed to Ethernet) ports. Since the only ULP using QP1 is the CM and since all protocol traffic is done in kernel, we do not expose QP1 to userspace. Signed-off-by: Eli Cohen e...@mellanox.co.il --- drivers/infiniband/core/user_mad.c | 11

[PATCHv9 03/12] ib_core: IBoE UD packet packing support

2010-08-06 Thread Eli Cohen
Add support functions to aid in packing IBoE packets. Signed-off-by: Eli Cohen e...@mellanox.co.il --- drivers/infiniband/core/ud_header.c | 128 ++- include/rdma/ib_pack.h | 30 +++- 2 files changed, 124 insertions(+), 34 deletions(-) diff

[PATCHv9 04/12] mpt to API changelx4: Adapt to API changes in the previous commit

2010-08-06 Thread Eli Cohen
This is done to synchronize mlx4 with the API changes. Signed-off-by: Eli Cohen e...@mellanox.co.il --- drivers/infiniband/hw/mlx4/qp.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c index

[PATCHv9 07/12] mlx4: Allow interfaces to correspond to each other

2010-08-06 Thread Eli Cohen
Add a mechanism for mlx4 core interfaces to get a pointer to other interfaces' device object. For this, an exported function, mlx4_get_prot_dev() is added, which allows an interfaces to get some other interface's device based on the protocol that interface implements. Two new protocols are added,

[PATCHv9 09/12] ib_core: Add VLAN support to IBoE

2010-08-06 Thread Eli Cohen
Add 802.1q vlan support to IBoE. The vlan tag is encoded within the GID derived from a link local address in the following way: GID[11] GID[12] contain the vlan ID. The 3 bit user priority field is identical to the 3 bits of the SL. In case rdma_cm apps, the TOS field is used to generate the SL

[PATCHv9 08/12] mlx4: Add support for IBoE - address resolution

2010-08-06 Thread Eli Cohen
The following patch handles address vectors creation for IBoE ports. mlx4 needs the MAC address of the remote node to include it in the WQE of a UD QP or in the QP context of connected QPs. Address resolution is done atomically in the case of a link local address or a multicast GID and otherwise

[PATCHv9 10/12] mlx4: Adpat to API changes in the previous commit

2010-08-06 Thread Eli Cohen
This is done to synchronize mlx4 with the API changes. Signed-off-by: Eli Cohen e...@mellanox.co.il --- drivers/infiniband/hw/mlx4/qp.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c index

[PATCHv9 11/12] mthca: Adpat to API changes in ib_core for UD packing

2010-08-06 Thread Eli Cohen
This is done to synchronize mthca with the API changes. Signed-off-by: Eli Cohen e...@mellanox.co.il --- drivers/infiniband/hw/mthca/mthca_qp.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/infiniband/hw/mthca/mthca_qp.c

[PATCHv9 12/12] mlx4: Add vlan support to IBoE

2010-08-06 Thread Eli Cohen
This patch allows IBoE traffic to be encapsulated in 802.1q tagged VLAN frames. The VLAN tag is encoded in the GID and derived from it by a simple computation. The netdev notifier callback is modified to catch new VLAN devices addition/removal and the port's GID table is updated to reflect the

[PATCHv9 1/4] libibverbs: Add link layer field to ibv_port_attr

2010-08-06 Thread Eli Cohen
This field can have one of the values - IBV_LINK_LAYER_UNSPECIFIED, IBV_LINK_LAYER_INFINIBAND, IBV_LINK_LAYER_ETHERNET. It can be used by applications to know the link layer used by the port, which can be either Infiniband or Ethernet. The addition of the new field does not change the size of

[PATCHv9 2/4] lbibverbs: change kernel API to accept link layer

2010-08-06 Thread Eli Cohen
Modify the code to allow passing the link layer of a port from kernel to user. Update ibv_query_port.3 man page with the change. Signed-off-by: Eli Cohen e...@mellanox.co.il --- include/infiniband/kern-abi.h |3 ++- man/ibv_query_port.3 |1 + src/cmd.c |1

[PATCHv9 3/4] libibverbs: Add API to resolve GID to L2 address

2010-08-06 Thread Eli Cohen
Add a new API, resolve_eth_gid(), which resolves a GID to layer 2 address information. A GID resembles an IPv6 link local address and encodes the MAC address and the VLAN tag within it. The function accepts the destination GID, port number and source GID index and returns the MAC, VLAN and

[PATCHv9 4/4] libibverbs: Update examples for IBoE

2010-08-06 Thread Eli Cohen
Since IBoE requires usage of GRH, update ibv_*_pinpong examples to accept GIDs. GIDs are given as an index to the local port's table and are exchanged between the client and the server through the socket connection. The examples are also modified to pass the gid index to the code that creates the

[PATCHv9 1/2] libmlx4: Add IBoE support

2010-08-06 Thread Eli Cohen
Modify libmlx4 to support IBoE. The change involves retrieving the ethernet layer 2 address of a port based on its GID and source index through a new userspace call, resolve_eth_gid(), and embedding the layer 2 information in the address vector representation of mlx4. Signed-off-by: Eli Cohen

Re: yet again the atomic operations

2010-08-06 Thread Roland Dreier
So if the CPU writes/reads to/from the same address, even atomically (lock), there might be room for some inconsistency on the values? It is not really atomic from the whole system point of view, just for the HCA? If so, is there any possibility to make the whole operation 'system-wide'

Re: {RFC] ibv_post_send()/ibv_post_recv() kernel path optimizations

2010-08-06 Thread Roland Dreier
The proposed path optimization is removing of dynamic allocations by redefining a structure definition passed to kernel. To struct ibv_post_send { __u32 command; __u16 in_words; __u16 out_words; __u64 response; __u32 qp_handle;

Re: {RFC] ibv_post_send()/ibv_post_recv() kernel path optimizations

2010-08-06 Thread Jason Gunthorpe
On Fri, Aug 06, 2010 at 11:03:36AM +0100, Walukiewicz, Miroslaw wrote: Currently the transmit/receive path works following way: User calls ibv_post_send() where vendor specific function is called. When the path should go through kernel the ibv_cmd_post_send() is called. The function creates

Re: [PATCHv9 3/4] libibverbs: Add API to resolve GID to L2 address

2010-08-06 Thread Jason Gunthorpe
On Fri, Aug 06, 2010 at 05:43:37PM +0300, Eli Cohen wrote: +int resolve_eth_gid(struct ibv_pd *pd, uint8_t port_num, + union ibv_gid *dgid, uint8_t sgid_index, + uint8_t mac[], uint16_t *vlan, uint8_t *tagged, + uint8_t *is_mcast); Still

Re: [PATCHv9 09/12] ib_core: Add VLAN support to IBoE

2010-08-06 Thread Jason Gunthorpe
On Fri, Aug 06, 2010 at 05:41:53PM +0300, Eli Cohen wrote: -static inline void iboe_mac_to_ll(union ib_gid *gid, u8 *mac) +static inline void iboe_mac_vlan_to_ll(union ib_gid *gid, u8 *mac, u16 vid) { memset(gid-raw, 0, 16); *((u32 *)gid-raw) = cpu_to_be32(0xfe80); -

Re: yet again the atomic operations

2010-08-06 Thread Ralph Campbell
On Fri, 2010-08-06 at 04:43 -0700, Rui Machado wrote: Hi there, There are two kinds supported. QLogic's driver does them in the host driver so they are atomic with respect to all the CPUs in the host. Mellanox uses HCA wide atomic which means the HCA will do a memory read/write without

Re: {RFC] ibv_post_send()/ibv_post_recv() kernel path optimizations

2010-08-06 Thread Ralph Campbell
On Fri, 2010-08-06 at 03:03 -0700, Walukiewicz, Miroslaw wrote: Currently the ibv_post_send()/ibv_post_recv() path through kernel (using /dev/infiniband/rdmacm) could be optimized by removing dynamic memory allocations on the path. Currently the transmit/receive path works following way:

[PATCH 01/10] pre-reserve MPTs for FC

2010-08-06 Thread Vu Pham
From: Yevgeny Petrilin yevge...@mellanox.co.il Date: Sun, 16 Nov 2008 10:25:59 +0200 Subject: [PATCH] mlx4: Fibre Channel support As we did with QPs, some of the MPTs are pre-reserved (the MPTs that are mapped for FEXCHs, 2*64K of them). So needed to split the operation of allocating an MPT to

[PATCH 06/10] enable T11 bit for mlx4 device

2010-08-06 Thread Vu Pham
Enable T11 bit support on mlx4 device Signed-off-by: Oren Duer o...@mellanox.co.il Signed-off-by: Vu Pham v...@mellanx.com drivers/net/mlx4/fw.c | 13 + include/linux/mlx4/device.h |5 - 2 files changed, 17 insertions(+), 1 deletions(-) Enable T11 bit in mlx4 device

[PATCH 09/10] enable mlx4_fc, mlx4_fcoib in scsi Kconfig, makefile

2010-08-06 Thread Vu Pham
Enable mlx4_fc (fcoe/fcoib offload driver) and mlx4_fcoib (discovery driver) entries in scsi/Kconfig and Makefile Signed-off-by: Vu Pham v...@mellanx.com Enable mlx4_fc (fcoe/fcoib offload driver) and mlx4_fcoib (discovery driver) entries in scsi/Kconfig and Makefile Signed-off-by: Vu Pham

[PATCH 05/10] query ib device from given mlx4 device

2010-08-06 Thread Vu Pham
Adding API to query ib_device with mlx4_dev Signed-off-by: Oren Duer o...@mellanox.co.il Signed-off-by: Vu Pham v...@mellanx.com drivers/infiniband/hw/mlx4/main.c | 10 +- drivers/net/mlx4/intf.c | 20 drivers/net/mlx4/main.c | 10 +++---

[PATCH 07/10] query the steer capabilities of mlx4 device

2010-08-06 Thread Vu Pham
Add API to query the steer capabilities of mlx4 device Signed-off-by: Oren Duer o...@mellanox.co.il Signed-off-by: Vu Pham v...@mellanx.com Add API to query the steer capabilities of mlx4 device Signed-off-by: Oren Duer o...@mellanox.co.il Signed-off-by: Vu Pham v...@mellanx.com diff

[PATCH 08/10] enable vlan support in mlx4 qp path

2010-08-06 Thread Vu Pham
Enable vlan support in qp path, allow traffic to be encapsulated in tagged vlan frames. Signed-off-by: Vu Pham v...@mellanox.com Enable vlan support in qp path, allow traffic to be encapsulated in tagged vlan frames. Signed-off-by: Vu Pham v...@mellanox.com diff

[PATCH 00/10] Add fcoe, fcoib drivers for mlx4 device

2010-08-06 Thread Vu Pham
Hi Roland, The following series implements fcoe and fcoib offload driver for mlx4 device mlx4_fc: implement fcoe/fcoib, hook to scsi mid-layer to offload scsi operations, and use openfc's libfc to do ELS/BLS mlx4_fcoib: driver implement fcoib initialization protocol to discover IB-FC

[PATCH 02/10] api to query mlx4_en device for given mlx4 device

2010-08-06 Thread Vu Pham
mlx4_en: Add API to query interfaces for given internal device Updated mlx4_en interface to provide a query function for it's internal net_device structure. Signed-off-by: Oren Duer o...@mellanox.co.il Signed-off-by: Vu Pham v...@mellanx.com drivers/net/mlx4/en_main.c | 14

[PATCH 04/10] remove default reservation of fexch qps and mpts

2010-08-06 Thread Vu Pham
mlx4_core: removed reservation of FEXCH QPs and MPTs mlx4_fc module will reserve them upon loading. Added mpt reserve_range and release_range functions. Signed-off-by: Oren Duer o...@mellanox.co.il Signed-off-by: Vu Pham v...@mellanx.com drivers/net/mlx4/main.c |4 +---

[PATCH 03/10] attach cq to least cqs attached completion vector

2010-08-06 Thread Vu Pham
When the vector number passed to mlx4_cq_alloc is MLX4_LEAST_ATTACHED_VECTOR the driver selects the completion vector that has the least CQ's attached to it and attaches the CQ to the chosen vector. IB_CQ_VECTOR_LEAST_ATTACHED is defined in rdma/ib_verbs.h, when mlx4_ib driv recieves this cq