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
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.
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
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
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
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
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
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
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,
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
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
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
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
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
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
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
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
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
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
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'
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;
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
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
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);
-
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
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:
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
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
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
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 +++---
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
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
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
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
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 +---
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
36 matches
Mail list logo