Re: [ewg] 2.6.32 patch has carriage returns in it that are causing rejects
Some good news for SLES 11 SP1 below... On 06/14/10 12:55, Jeff Becker wrote: > On 06/14/10 11:16, Jeff Becker wrote: >> I cloned ofed_1_5/linux-2.6.git and tried to do: >> >> ./ofed_scripts/ofed_patch.sh --with-backport=2.6.32 >> >> It rejected >> kernel_patches/backport/2.6.32/mlx4_semaphore_include.patch because >> the latter ends lines with carriage return and newline. I checked >> other patches and they only have newline. Should I submit a patch to >> the patch? Thanks. > > I find the ^M's in: > > kernel_patches/backport/2.6.32/new_frags_interface.patch > kernel_patches/backport/2.6.32/net_skb-dst_accessors.patch > > as well. Is there a special option I need to give to ofed_checkout.sh? > Thanks. After fixing the ^M's and getting ofed_patch.sh to complete, a basic build: configure --with-core-mod --with-user_mad-mod --with-user_access-mod --with-addr_trans-mod --with-mlx4-mod builds fine against the SLES 11 SP1 kernel. Now to test it... -jeff > > -jeff > >> >> -jeff > ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] 2.6.32 patch has carriage returns in it that are causing rejects
On 06/14/10 11:16, Jeff Becker wrote: > I cloned ofed_1_5/linux-2.6.git and tried to do: > > ./ofed_scripts/ofed_patch.sh --with-backport=2.6.32 > > It rejected > kernel_patches/backport/2.6.32/mlx4_semaphore_include.patch because > the latter ends lines with carriage return and newline. I checked > other patches and they only have newline. Should I submit a patch to > the patch? Thanks. I find the ^M's in: kernel_patches/backport/2.6.32/new_frags_interface.patch kernel_patches/backport/2.6.32/net_skb-dst_accessors.patch as well. Is there a special option I need to give to ofed_checkout.sh? Thanks. -jeff > > -jeff ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] 2.6.32 patch has carriage returns in it that are causing rejects
I cloned ofed_1_5/linux-2.6.git and tried to do: ./ofed_scripts/ofed_patch.sh --with-backport=2.6.32 It rejected kernel_patches/backport/2.6.32/mlx4_semaphore_include.patch because the latter ends lines with carriage return and newline. I checked other patches and they only have newline. Should I submit a patch to the patch? Thanks. -jeff ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] RAW_ETH support [PATCH 1/2]
Moni Shoua wrote: > Hi Vlad > Please apply this patch. > Now, when RAW patches that you accepted today are applied, RAW ETH QP support > is broken for NE driver unless this patch is applied. > > thanks > Applied, Regards, Vladimir > Aleksey Senin wrote: >> This patch will fix existing NES code to support RAW_ETH instead of RAW_ETY >> type. >> >> >> Signed-off-by: Aleksey Senin >> --- >> kernel_patches/fixes/nes_0033_ima.patch | 10 +- >> 1 files changed, 5 insertions(+), 5 deletions(-) >> >> diff --git a/kernel_patches/fixes/nes_0033_ima.patch >> b/kernel_patches/fixes/nes_0033_ima.patch >> index ed21edd..304fe73 100755 >> --- a/kernel_patches/fixes/nes_0033_ima.patch >> +++ b/kernel_patches/fixes/nes_0033_ima.patch >> @@ -1,8 +1,8 @@ >> RDMA/nes: add support of iWARP multicast acceleration over >> -IB_QPT_RAW_ETY QP type >> +IB_QPT_RAW_ETH QP type >> >> This patch implements iWarp multicast acceleration (IMA) >> -over IB_QPT_RAW_ETY QP type in nes driver. >> +over IB_QPT_RAW_ETH QP type in nes driver. >> >> Application creates a raw eth QP (IBV_QPT_RAW_ETH in user-space) and >> manages the multicast via ibv_attach_mcast and ibv_detach_mcast calls. >> @@ -2301,7 +2301,7 @@ index 098b56f..1801a54 100644 >> - nes_debug(NES_DBG_QP, "Invalid QP type: %d\n", >> init_attr->qp_type); >> - return ERR_PTR(-EINVAL); >> + >> -+ case IB_QPT_RAW_ETY: >> ++ case IB_QPT_RAW_ETH: >> + if (!ibpd->uobject) >> + return ERR_PTR(-EINVAL); >> + >> @@ -2428,7 +2428,7 @@ index 098b56f..1801a54 100644 >> atomic_inc(&sw_qps_destroyed); >> nesqp->destroyed = 1; >> >> -+ if (nesqp->ibqp.qp_type == IB_QPT_RAW_ETY) { >> ++ if (nesqp->ibqp.qp_type == IB_QPT_RAW_ETH) { >> + /* check the QP refernece count */ >> + if (atomic_read(&nesqp->refcount) == 0) >> + BUG(); >> @@ -2558,7 +2558,7 @@ index 098b56f..1801a54 100644 >> nesqp->hwqp.qp_id, attr->qp_state, nesqp->ibqp_state, >> nesqp->iwarp_state, atomic_read(&nesqp->refcount)); >> >> -+ if (ibqp->qp_type == IB_QPT_RAW_ETY) >> ++ if (ibqp->qp_type == IB_QPT_RAW_ETH) >> + return 0; >> + >> spin_lock_irqsave(&nesqp->lock, qplockflags); > > ___ > ewg mailing list > ewg@lists.openfabrics.org > http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg > ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] RAW_ETH support [PATCH 1/2]
Hi Vlad Please apply this patch. Now, when RAW patches that you accepted today are applied, RAW ETH QP support is broken for NE driver unless this patch is applied. thanks Aleksey Senin wrote: > This patch will fix existing NES code to support RAW_ETH instead of RAW_ETY > type. > > > Signed-off-by: Aleksey Senin > --- > kernel_patches/fixes/nes_0033_ima.patch | 10 +- > 1 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/kernel_patches/fixes/nes_0033_ima.patch > b/kernel_patches/fixes/nes_0033_ima.patch > index ed21edd..304fe73 100755 > --- a/kernel_patches/fixes/nes_0033_ima.patch > +++ b/kernel_patches/fixes/nes_0033_ima.patch > @@ -1,8 +1,8 @@ > RDMA/nes: add support of iWARP multicast acceleration over > - IB_QPT_RAW_ETY QP type > + IB_QPT_RAW_ETH QP type > > This patch implements iWarp multicast acceleration (IMA) > -over IB_QPT_RAW_ETY QP type in nes driver. > +over IB_QPT_RAW_ETH QP type in nes driver. > > Application creates a raw eth QP (IBV_QPT_RAW_ETH in user-space) and > manages the multicast via ibv_attach_mcast and ibv_detach_mcast calls. > @@ -2301,7 +2301,7 @@ index 098b56f..1801a54 100644 > -nes_debug(NES_DBG_QP, "Invalid QP type: %d\n", > init_attr->qp_type); > -return ERR_PTR(-EINVAL); > + > -+case IB_QPT_RAW_ETY: > ++case IB_QPT_RAW_ETH: > +if (!ibpd->uobject) > +return ERR_PTR(-EINVAL); > + > @@ -2428,7 +2428,7 @@ index 098b56f..1801a54 100644 > atomic_inc(&sw_qps_destroyed); > nesqp->destroyed = 1; > > -+if (nesqp->ibqp.qp_type == IB_QPT_RAW_ETY) { > ++if (nesqp->ibqp.qp_type == IB_QPT_RAW_ETH) { > +/* check the QP refernece count */ > +if (atomic_read(&nesqp->refcount) == 0) > +BUG(); > @@ -2558,7 +2558,7 @@ index 098b56f..1801a54 100644 > nesqp->hwqp.qp_id, attr->qp_state, nesqp->ibqp_state, > nesqp->iwarp_state, atomic_read(&nesqp->refcount)); > > -+if (ibqp->qp_type == IB_QPT_RAW_ETY) > ++if (ibqp->qp_type == IB_QPT_RAW_ETH) > +return 0; > + > spin_lock_irqsave(&nesqp->lock, qplockflags); ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH] ofa_kernel madeye.c
Thanks! From: Vladimir Sokolovsky [v...@dev.mellanox.co.il] Sent: Sunday, June 13, 2010 5:01 AM To: Mike Heinz Cc: e...@openfabrics.org Subject: Re: [ewg] [PATCH] ofa_kernel madeye.c Mike Heinz wrote: > This is a simple fix. Several of the snoop filters in > ./drivers/infiniband/util/madeye.c don't switch the attribute id to host byte > order before checking it. > > Signed-off-by: Michael Heinz > Applied, Regards, Vladimir ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] RAW ETH for NES
Hi, Miroslaw. My patches for new RAW ETH was applied to the OFED kernel so can you fix your code to use RAW ETH instead of RAW ETY and push changes to OFED? thanks. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v6] MLX: RAW ETH support
Aleksey Senin wrote: > This patch add RAW ETH support in mlx4 driver. > > > Signed-off-by: Aleksey Senin > --- Applied, Regards, Vladimir ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v6] IB CORE: RAW ETH support
Aleksey Senin wrote: > This patch add RAW ETH support to IB core. > > > Signed-off-by: Aleksey Senin > --- Applied, Regards, Vladimir ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] [PATCH v6] MLX: RAW ETH support
This patch add RAW ETH support in mlx4 driver. Signed-off-by: Aleksey Senin --- kernel_patches/fixes/mlx4_x_0050_raw_eth.patch | 255 1 files changed, 255 insertions(+), 0 deletions(-) create mode 100644 kernel_patches/fixes/mlx4_x_0050_raw_eth.patch diff --git a/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch b/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch new file mode 100644 index 000..c8f89c0 --- /dev/null +++ b/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch @@ -0,0 +1,255 @@ +From fb0b22d037f469b8f052ec650aeed78f4d21cec9 Mon Sep 17 00:00:00 2001 +From: Aleksey Senin +Date: Mon, 14 Jun 2010 15:26:25 +0300 +Subject: [PATCH 2/2] Mellanox RAW ETH support. + Add RAW ETH support in mlx4 drivers. + + +Signed-off-by: Aleksey Senin +--- + drivers/infiniband/hw/mlx4/main.c | 13 + + drivers/infiniband/hw/mlx4/qp.c | 24 +++- + drivers/net/mlx4/mcg.c| 20 + include/linux/mlx4/device.h |7 +-- + include/linux/mlx4/driver.h |5 + + 5 files changed, 50 insertions(+), 19 deletions(-) + +diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c +index c146b84..43d0ccc 100644 +--- a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c +@@ -684,7 +684,9 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + struct mlx4_ib_qp *mqp = to_mqp(ibqp); + + err = mlx4_multicast_attach(mdev->dev, &mqp->mqp, gid->raw, !!(mqp->flags & +- MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK)); ++ MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK), ++ (ibqp->qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + if (err) + return err; + +@@ -695,7 +697,9 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + return 0; + + err_add: +- mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw); ++ mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw, ++ (ibqp->qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + return err; + } + +@@ -724,8 +728,9 @@ static int mlx4_ib_mcg_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + struct net_device *ndev; + struct gid_entry *ge; + +- err = mlx4_multicast_detach(mdev->dev, +- &mqp->mqp, gid->raw); ++ err = mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw, ++ (ibqp->qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + if (err) + return err; + +diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c +index 1fe4d77..a0dd1d5 100644 +--- a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c +@@ -811,6 +811,7 @@ struct ib_qp *mlx4_ib_create_qp(struct ib_pd *pd, + case IB_QPT_RC: + case IB_QPT_UC: + case IB_QPT_UD: ++ case IB_QPT_RAW_ETH: + { + qp = kzalloc(sizeof *qp, GFP_KERNEL); + if (!qp) +@@ -901,7 +902,8 @@ static int to_mlx4_st(enum ib_qp_type type) + case IB_QPT_XRC:return MLX4_QP_ST_XRC; + case IB_QPT_RAW_ETY: + case IB_QPT_SMI: +- case IB_QPT_GSI:return MLX4_QP_ST_MLX; ++ case IB_QPT_GSI: ++ case IB_QPT_RAW_ETH:return MLX4_QP_ST_MLX; + default:return -1; + } + } +@@ -1066,8 +1068,9 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, + break; + } + } +- +- if (ibqp->qp_type == IB_QPT_GSI || ibqp->qp_type == IB_QPT_SMI || ++ if (ibqp->qp_type == IB_QPT_RAW_ETH) ++ context->mtu_msgmax = 0xff; ++ else if (ibqp->qp_type == IB_QPT_GSI || ibqp->qp_type == IB_QPT_SMI || + ibqp->qp_type == IB_QPT_RAW_ETY) + context->mtu_msgmax = (IB_MTU_4096 << 5) | 11; + else if (ibqp->qp_type == IB_QPT_UD) { +@@ -1239,7 +1242,8 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, + if (cur_state == IB_QPS_INIT && + new_state == IB_QPS_RTR && + (ibqp->qp_type == IB_QPT_GSI || ibqp->qp_type == IB_QPT_SMI || +- ibqp->qp_type == IB_QPT_UD || ibqp->qp_type == IB_QPT_RAW_ETY)) { ++ ibqp->qp_type == IB_QPT_UD || ibqp->qp_type == IB_QPT_RAW_ETY || ++ ibqp->qp_type == IB_QPT_RAW_ETH)) { + context->pri_path.sched_queue = (qp->port - 1) << 6; + if (is_qp0(dev, qp)) + context->pri_path.sched_queue |= MLX4_IB_DEFAULT_QP0_SCHED_QUEUE; +@@ -1358,7 +1362,7 @@ int mlx4_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, + goto out; + } + +- if ((attr_mask & IB_QP_PORT)
[ewg] [PATCH v6] IB CORE: RAW ETH support
This patch add RAW ETH support to IB core. Signed-off-by: Aleksey Senin --- .../fixes/core_0560_raw_eth_common.patch | 66 1 files changed, 66 insertions(+), 0 deletions(-) create mode 100644 kernel_patches/fixes/core_0560_raw_eth_common.patch diff --git a/kernel_patches/fixes/core_0560_raw_eth_common.patch b/kernel_patches/fixes/core_0560_raw_eth_common.patch new file mode 100644 index 000..52d7be7 --- /dev/null +++ b/kernel_patches/fixes/core_0560_raw_eth_common.patch @@ -0,0 +1,66 @@ +From b76993213461212cfdb40817b454513a91ee4e6e Mon Sep 17 00:00:00 2001 +From: Aleksey Senin +Date: Mon, 14 Jun 2010 15:20:40 +0300 +Subject: [PATCH 1/2] Verbs RAW ETH support + +This patch add RAW ETH support in IB core. + +Signed-off-by: Aleksey Senin +--- + drivers/infiniband/core/verbs.c | 13 +++-- + include/rdma/ib_verbs.h |1 + + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +index 881850e..bb4dcd5 100644 +--- a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +@@ -382,6 +382,7 @@ static const struct { + [IB_QPT_UD] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_QKEY), ++ [IB_QPT_RAW_ETH] = IB_QP_PORT, + [IB_QPT_UC] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_ACCESS_FLAGS), +@@ -1004,7 +1005,11 @@ int ib_attach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp->device->node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) ++ if (qp->qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid->global.subnet_prefix & cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +@@ -1023,7 +1028,11 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp->device->node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) ++ if (qp->qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid->global.subnet_prefix & cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +index 3a5a40f..2162253 100644 +--- a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +@@ -571,6 +571,7 @@ enum ib_qp_type { + IB_QPT_UD, + IB_QPT_XRC, + IB_QPT_RAW_IPV6, ++ IB_QPT_RAW_ETH, + IB_QPT_RAW_ETY + }; + +-- +1.6.5.2 + -- 1.6.5.2 ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available
OK, no problem. -Original Message- From: Or Gerlitz [mailto:ogerl...@voltaire.com] Sent: Monday, June 14, 2010 3:10 PM To: Eli Cohen Cc: tzipo...@dev.mellanox.co.il; OpenFabrics EWG Subject: Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available Eli Cohen wrote: > I don't know what you're talking about WRT 2043. It's status is > "RESOLVED", not "VERIFIED". And you may address me directly [...] > we'll check about the global frames case Hi Eli, please hold the horses... I was confusing between "resolved" to "verified", mistakes happen, you know. Saying all that, thanks for looking into validating the case! Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available
Eli Cohen wrote: > I don't know what you're talking about WRT 2043. It's status is "RESOLVED", > not "VERIFIED". And you may address me directly [...] we'll check about the > global frames case Hi Eli, please hold the horses... I was confusing between "resolved" to "verified", mistakes happen, you know. Saying all that, thanks for looking into validating the case! Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available
Or, I don't know what you're talking about WRT 2043. It's status is "RESOLVED", not "VERIFIED". And you may address me directly, we've met a few times, haven't we? We'll check about the global frames case. -Original Message- From: Or Gerlitz [mailto:ogerl...@voltaire.com] Sent: Monday, June 14, 2010 2:17 PM To: tzipo...@dev.mellanox.co.il Cc: OpenFabrics EWG; Eli Cohen Subject: Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available Tziporet Koren wrote: > Hi Or, sorry for not answering before > Issue 2043 - is already fixed > Issue 2005 - We released 2.7.700 FW that solve this issue. > Issue 2024 - Eli just answered in bugzilla. Hi Tziporet, 1st and most, good to hear from you... thanks for the detailed answer. Still, for bz 2024, Eli's reply was addressing a case where the Cisco switch was instrumented for PFC, but not the case of global pause under which the problem still happens, per the original description. Did someone from Mellanox actually got to validate bz 2043, it was declared fixed and verified in the very same minute and by the same person... Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available
On 6/14/2010 2:17 PM, Or Gerlitz wrote: > Did someone from Mellanox actually got to validate bz 2043, it was declared > fixed and verified in the very same minute and by the same person... > I will check Tziporet ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available
Tziporet Koren wrote: > Hi Or, sorry for not answering before > Issue 2043 - is already fixed > Issue 2005 - We released 2.7.700 FW that solve this issue. > Issue 2024 - Eli just answered in bugzilla. Hi Tziporet, 1st and most, good to hear from you... thanks for the detailed answer. Still, for bz 2024, Eli's reply was addressing a case where the Cisco switch was instrumented for PFC, but not the case of global pause under which the problem still happens, per the original description. Did someone from Mellanox actually got to validate bz 2043, it was declared fixed and verified in the very same minute and by the same person... Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available
On 6/14/2010 10:30 AM, Or Gerlitz wrote: Or Gerlitz wrote: I don't see any mentioning of IBoE open issues, e.g depicted in ofa bz cases such as: bz 2005 "Rocce fails when 1 port is IB and the other is Ethernet" bz 2024 "clients fail when global pauses or PPP enabled on switch" bz 2043 "OFED 1.5.1 crashes after running Mcast over RoCE" Hi Tziporet, I didn't see any response from you, can this be addressed? Or. Hi Or Sorry for not answering before Issue 2043 - is already fixed Issue 2005 - We released 2.7.700 FW that solve this issue. Issue 2024 - Eli just answered in bugzilla. Tziporet ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v4] IB Core: RAW ETH support
I tested it before on the Roland tree ( iboe branch ) and it fails, because it writen in the way suitable for OFED. If adapt the patch to the Roland tree, then appling Mellanox OFED patches will fail, because it changes the same functions in the code. Here is one example: Look at __mlx4_ib_modify_qp at the Roland tree - there is no RAW_ETY support. But in the OFED version of the same function this support is present. RAW_ETH patch modify this function and looking for RAW_ETY word and without this RAW_ETH Mellanox patch will fail. The similar thing happens with patch for the verbs. There is no iWARP present in the Roland tree. On Mon, 2010-06-14 at 13:50 +0300, Eli Cohen wrote: > I don't think there is a substantial dependence between RoCEE and raw > ethernet. I don't know what Moni meant. Moni? > > -Original Message- > From: Or Gerlitz [mailto:ogerl...@voltaire.com] > Sent: Monday, June 14, 2010 1:42 PM > To: Moni Shoua; Eli Cohen > Cc: Aleksey Senin; Vladimir Sokolovsky; v...@dev.mellanox.co.il; > e...@openfabrics.org > Subject: Re: [ewg] [PATCH v4] IB Core: RAW ETH support > > Moni Shoua wrote: > > The patches can't be applies to upstream kernel. An attempt to do this > > failed. I guess that some of RoCEE patches are still missing in kernel > > upstream. > Eli, can you elaborate on that? is there any real dependence between the RoCE > patches to the raw qp ones? what is this dependence in high level, is it > placement of change sets in the code or actual flows? > > Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v5] IB Core: RAW ETH support
Alekseys Senin wrote: > This patch adds support to RAW ETH QP in ib core. > > diff --git a/kernel_patches/fixes/core_0560_raw_eth_common.patch > b/kernel_patches/fixes/core_0560_raw_eth_common.patch Hi Aleksey, This patches do not pass scripts/checkpatch.pl: ERROR: patch seems to be corrupt (line wrapped?) #54: FILE: kernel_patches/fixes/mlx4_x_0050_raw_eth.patch:13: 4/main.c Please send them in text format (not HTML) and not from Microsoft Outlook. Thanks, Vladimir > new file mode 100644 > index 000..ae43298 > --- /dev/null > +++ b/kernel_patches/fixes/core_0560_raw_eth_common.patch > @@ -0,0 +1,63 @@ > + Add new RAW_ETH QP type in order to build RAW Ethernet packets > + over iWARP and RoCEE. > + > + > +Signed-off-by: Aleksey Senin > +--- > + drivers/infiniband/core/verbs.c | 13 +++-- > + include/rdma/ib_verbs.h |1 + > + 2 files changed, 12 insertions(+), 2 deletions(-) > + > +diff --git a/drivers/infiniband/core/verbs.c > b/drivers/infiniband/core/verbs.c > +index 881850e..bb4dcd5 100644 > +--- a/drivers/infiniband/core/verbs.c > b/drivers/infiniband/core/verbs.c > +@@ -382,6 +382,7 @@ static const struct { > + [IB_QPT_UD] = (IB_QP_PKEY_INDEX > | > + IB_QP_PORT > | > + IB_QP_QKEY), > ++[IB_QPT_RAW_ETH] = IB_QP_PORT, > + [IB_QPT_UC] = (IB_QP_PKEY_INDEX > | > + IB_QP_PORT > | > + IB_QP_ACCESS_FLAGS), > +@@ -1004,7 +1005,11 @@ int ib_attach_mcast(struct ib_qp *qp, union ib_gid > *gid, u16 lid) > + > + switch (rdma_node_get_transport(qp->device->node_type)) { > + case RDMA_TRANSPORT_IB: > +-if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) > ++if (qp->qp_type == IB_QPT_RAW_ETH) { > ++/* In raw Etherent mgids the 63 msb's should be 0 */ > ++if (gid->global.subnet_prefix & cpu_to_be64(~1ULL)) > ++return -EINVAL; > ++} else if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) > + return -EINVAL; > + break; > + case RDMA_TRANSPORT_IWARP: > +@@ -1023,7 +1028,11 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid > *gid, u16 lid) > + > + switch (rdma_node_get_transport(qp->device->node_type)) { > + case RDMA_TRANSPORT_IB: > +-if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) > ++if (qp->qp_type == IB_QPT_RAW_ETH) { > ++/* In raw Etherent mgids the 63 msb's should be 0 */ > ++if (gid->global.subnet_prefix & cpu_to_be64(~1ULL)) > ++return -EINVAL; > ++} else if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) > + return -EINVAL; > + break; > + case RDMA_TRANSPORT_IWARP: > +diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h > +index 3a5a40f..2162253 100644 > +--- a/include/rdma/ib_verbs.h > b/include/rdma/ib_verbs.h > +@@ -571,6 +571,7 @@ enum ib_qp_type { > + IB_QPT_UD, > + IB_QPT_XRC, > + IB_QPT_RAW_IPV6, > ++IB_QPT_RAW_ETH, > + IB_QPT_RAW_ETY > + }; > + > +-- > +1.6.5.2 > + > > ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v4] IB Core: RAW ETH support
I don't think there is a substantial dependence between RoCEE and raw ethernet. I don't know what Moni meant. Moni? -Original Message- From: Or Gerlitz [mailto:ogerl...@voltaire.com] Sent: Monday, June 14, 2010 1:42 PM To: Moni Shoua; Eli Cohen Cc: Aleksey Senin; Vladimir Sokolovsky; v...@dev.mellanox.co.il; e...@openfabrics.org Subject: Re: [ewg] [PATCH v4] IB Core: RAW ETH support Moni Shoua wrote: > The patches can't be applies to upstream kernel. An attempt to do this > failed. I guess that some of RoCEE patches are still missing in kernel > upstream. Eli, can you elaborate on that? is there any real dependence between the RoCE patches to the raw qp ones? what is this dependence in high level, is it placement of change sets in the code or actual flows? Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] [PATCH v5] MLX: RAW ETH support
RAW ETH Mellanox support Diffs from V4: Removed unnecessary 'return' from to_mlx4_st function Signed-off-by: Aleksey Senin --- kernel_patches/fixes/mlx4_x_0050_raw_eth.patch | 255 1 files changed, 255 insertions(+), 0 deletions(-) create mode 100644 kernel_patches/fixes/mlx4_x_0050_raw_eth.patch diff --git a/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch b/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch new file mode 100644 index 000..8e72d3c --- /dev/null +++ b/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch @@ -0,0 +1,255 @@ +From 37e6adf1ff039e13242636e988299e53099798d1 Mon Sep 17 00:00:00 2001 +From: Aleksey Senin +Date: Mon, 14 Jun 2010 13:32:37 +0300 +Subject: [PATCH] Mellanox RAW ETH support + +This patch adds RAW ETH support for Mellanox drivers + +Signed-off-by: Aleksey Senin +--- + drivers/infiniband/hw/mlx4/main.c | 13 + + drivers/infiniband/hw/mlx4/qp.c | 24 +++- + drivers/net/mlx4/mcg.c| 20 + include/linux/mlx4/device.h |7 +-- + include/linux/mlx4/driver.h |5 + + 5 files changed, 50 insertions(+), 19 deletions(-) + +diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c +index c146b84..43d0ccc 100644 +--- a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c +@@ -684,7 +684,9 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + struct mlx4_ib_qp *mqp = to_mqp(ibqp); + + err = mlx4_multicast_attach(mdev->dev, &mqp->mqp, gid->raw, !!(mqp->flags & +- MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK)); ++ MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK), ++ (ibqp->qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + if (err) + return err; + +@@ -695,7 +697,9 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + return 0; + + err_add: +- mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw); ++ mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw, ++ (ibqp->qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + return err; + } + +@@ -724,8 +728,9 @@ static int mlx4_ib_mcg_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + struct net_device *ndev; + struct gid_entry *ge; + +- err = mlx4_multicast_detach(mdev->dev, +- &mqp->mqp, gid->raw); ++ err = mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw, ++ (ibqp->qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + if (err) + return err; + +diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c +index 1fe4d77..a0dd1d5 100644 +--- a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c +@@ -811,6 +811,7 @@ struct ib_qp *mlx4_ib_create_qp(struct ib_pd *pd, + case IB_QPT_RC: + case IB_QPT_UC: + case IB_QPT_UD: ++ case IB_QPT_RAW_ETH: + { + qp = kzalloc(sizeof *qp, GFP_KERNEL); + if (!qp) +@@ -901,7 +902,8 @@ static int to_mlx4_st(enum ib_qp_type type) + case IB_QPT_XRC:return MLX4_QP_ST_XRC; + case IB_QPT_RAW_ETY: + case IB_QPT_SMI: +- case IB_QPT_GSI:return MLX4_QP_ST_MLX; ++ case IB_QPT_GSI: ++ case IB_QPT_RAW_ETH:return MLX4_QP_ST_MLX; + default:return -1; + } + } +@@ -1066,8 +1068,9 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, + break; + } + } +- +- if (ibqp->qp_type == IB_QPT_GSI || ibqp->qp_type == IB_QPT_SMI || ++ if (ibqp->qp_type == IB_QPT_RAW_ETH) ++ context->mtu_msgmax = 0xff; ++ else if (ibqp->qp_type == IB_QPT_GSI || ibqp->qp_type == IB_QPT_SMI || + ibqp->qp_type == IB_QPT_RAW_ETY) + context->mtu_msgmax = (IB_MTU_4096 << 5) | 11; + else if (ibqp->qp_type == IB_QPT_UD) { +@@ -1239,7 +1242,8 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, + if (cur_state == IB_QPS_INIT && + new_state == IB_QPS_RTR && + (ibqp->qp_type == IB_QPT_GSI || ibqp->qp_type == IB_QPT_SMI || +- ibqp->qp_type == IB_QPT_UD || ibqp->qp_type == IB_QPT_RAW_ETY)) { ++ ibqp->qp_type == IB_QPT_UD || ibqp->qp_type == IB_QPT_RAW_ETY || ++ ibqp->qp_type == IB_QPT_RAW_ETH)) { + context->pri_path.sched_queue = (qp->port - 1) << 6; + if (is_qp0(dev, qp)) + context->pri_path.sched_queue |= MLX4_IB_DEFAULT_QP0_SCHED_QUEUE; +@@ -1358,7 +1362,7 @@ int mlx4_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, + go
[ewg] [PATCH v5] IB Core: RAW ETH support
This patch adds support to RAW ETH QP in ib core. diff --git a/kernel_patches/fixes/core_0560_raw_eth_common.patch b/kernel_patches/fixes/core_0560_raw_eth_common.patch new file mode 100644 index 000..ae43298 --- /dev/null +++ b/kernel_patches/fixes/core_0560_raw_eth_common.patch @@ -0,0 +1,63 @@ + Add new RAW_ETH QP type in order to build RAW Ethernet packets + over iWARP and RoCEE. + + +Signed-off-by: Aleksey Senin +--- + drivers/infiniband/core/verbs.c | 13 +++-- + include/rdma/ib_verbs.h |1 + + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +index 881850e..bb4dcd5 100644 +--- a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +@@ -382,6 +382,7 @@ static const struct { + [IB_QPT_UD] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_QKEY), ++ [IB_QPT_RAW_ETH] = IB_QP_PORT, + [IB_QPT_UC] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_ACCESS_FLAGS), +@@ -1004,7 +1005,11 @@ int ib_attach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp->device->node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) ++ if (qp->qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid->global.subnet_prefix & cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +@@ -1023,7 +1028,11 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp->device->node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) ++ if (qp->qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid->global.subnet_prefix & cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +index 3a5a40f..2162253 100644 +--- a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +@@ -571,6 +571,7 @@ enum ib_qp_type { + IB_QPT_UD, + IB_QPT_XRC, + IB_QPT_RAW_IPV6, ++ IB_QPT_RAW_ETH, + IB_QPT_RAW_ETY + }; + +-- +1.6.5.2 + ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v4] IB Core: RAW ETH support
Moni Shoua wrote: > The patches can't be applies to upstream kernel. An attempt to do this > failed. I guess that some of RoCEE patches are still missing in kernel > upstream. Eli, can you elaborate on that? is there any real dependence between the RoCE patches to the raw qp ones? what is this dependence in high level, is it placement of change sets in the code or actual flows? Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] ofa_1_5_kernel 20100614-0200 daily build status
This email was generated automatically, please do not reply git_url: git://git.openfabrics.org/ofed_1_5/linux-2.6.git git_branch: ofed_kernel_1_5 Common build parameters: Passed: Passed on i686 with linux-2.6.21.1 Passed on i686 with linux-2.6.18 Passed on i686 with linux-2.6.19 Passed on i686 with linux-2.6.26 Passed on i686 with linux-2.6.24 Passed on i686 with linux-2.6.22 Passed on i686 with linux-2.6.27 Passed on x86_64 with linux-2.6.16.60-0.54.5-smp Passed on x86_64 with linux-2.6.16.60-0.21-smp Passed on x86_64 with linux-2.6.18 Passed on x86_64 with linux-2.6.18-128.el5 Passed on x86_64 with linux-2.6.18-164.el5 Passed on x86_64 with linux-2.6.18-194.el5 Passed on x86_64 with linux-2.6.19 Passed on x86_64 with linux-2.6.18-93.el5 Passed on x86_64 with linux-2.6.20 Passed on x86_64 with linux-2.6.21.1 Passed on x86_64 with linux-2.6.22 Passed on x86_64 with linux-2.6.26 Passed on x86_64 with linux-2.6.24 Passed on x86_64 with linux-2.6.25 Passed on x86_64 with linux-2.6.27 Passed on x86_64 with linux-2.6.27.19-5-smp Passed on x86_64 with linux-2.6.9-67.ELsmp Passed on x86_64 with linux-2.6.9-78.ELsmp Passed on x86_64 with linux-2.6.9-89.ELsmp Passed on ia64 with linux-2.6.19 Passed on ia64 with linux-2.6.18 Passed on ia64 with linux-2.6.21.1 Passed on ia64 with linux-2.6.23 Passed on ia64 with linux-2.6.22 Passed on ia64 with linux-2.6.26 Passed on ia64 with linux-2.6.24 Passed on ia64 with linux-2.6.25 Passed on ppc64 with linux-2.6.18 Passed on ppc64 with linux-2.6.19 Failed: ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v4] IB Core: RAW ETH support
The patches can't be applies to upstream kernel. An attempt to do this failed about a week or 2 ago. I guess that some of RoCEE patches are still missing in kernel upstream. -Original Message- From: Or Gerlitz Sent: Monday, June 14, 2010 12:15 PM To: Aleksey Senin Cc: Vladimir Sokolovsky; v...@dev.mellanox.co.il; e...@openfabrics.org; e...@mellanox.co.il; Moni Shoua Subject: Re: [ewg] [PATCH v4] IB Core: RAW ETH support Alekseys Senin wrote: > This patch adds support to RAW ETH QP in ib core. are these patches applicable to the mainstream kernel code or would only apply/function over ofed? Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v4] IB Core: RAW ETH support
Alekseys Senin wrote: > This patch adds support to RAW ETH QP in ib core. are these patches applicable to the mainstream kernel code or would only apply/function over ofed? Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v4] MLX4: RAW ETH support
On Mon, Jun 14, 2010 at 11:56 AM, Alekseys Senin wrote: > +@@ -902,6 +903,7 @@ static int to_mlx4_st(enum ib_qp_type type) > + case IB_QPT_RAW_ETY: > + case IB_QPT_SMI: > + case IB_QPT_GSI: return MLX4_QP_ST_MLX; > ++ case IB_QPT_RAW_ETH: return MLX4_QP_ST_MLX; It would look cleaner if you'd remove the first return above let it fallback to the later. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v4] IB Core: RAW ETH support
Vlad, please push to OFED. On Mon, Jun 14, 2010 at 11:48 AM, Alekseys Senin wrote: > This patch adds support to RAW ETH QP in ib core. > > diff --git a/kernel_patches/fixes/core_0560_raw_eth_common.patch > b/kernel_patches/fixes/core_0560_raw_eth_common.patch > new file mode 100644 > index 000..ae43298 > --- /dev/null > +++ b/kernel_patches/fixes/core_0560_raw_eth_common.patch > @@ -0,0 +1,63 @@ > + Add new RAW_ETH QP type in order to build RAW Ethernet packets > + over iWARP and RoCEE. > + > + > +Signed-off-by: Aleksey Senin > +--- > + drivers/infiniband/core/verbs.c | 13 +++-- > + include/rdma/ib_verbs.h | 1 + > + 2 files changed, 12 insertions(+), 2 deletions(-) > + > +diff --git a/drivers/infiniband/core/verbs.c > b/drivers/infiniband/core/verbs.c > +index 881850e..bb4dcd5 100644 > +--- a/drivers/infiniband/core/verbs.c > b/drivers/infiniband/core/verbs.c > +@@ -382,6 +382,7 @@ static const struct { > + [IB_QPT_UD] = (IB_QP_PKEY_INDEX > | > + IB_QP_PORT > | > + IB_QP_QKEY), > ++ [IB_QPT_RAW_ETH] = IB_QP_PORT, > + [IB_QPT_UC] = (IB_QP_PKEY_INDEX > | > + IB_QP_PORT > | > + IB_QP_ACCESS_FLAGS), > +@@ -1004,7 +1005,11 @@ int ib_attach_mcast(struct ib_qp *qp, union ib_gid > *gid, u16 lid) > + > + switch (rdma_node_get_transport(qp->device->node_type)) { > + case RDMA_TRANSPORT_IB: > +- if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) > ++ if (qp->qp_type == IB_QPT_RAW_ETH) { > ++ /* In raw Etherent mgids the 63 msb's should be 0 */ > ++ if (gid->global.subnet_prefix & cpu_to_be64(~1ULL)) > ++ return -EINVAL; > ++ } else if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) > + return -EINVAL; > + break; > + case RDMA_TRANSPORT_IWARP: > +@@ -1023,7 +1028,11 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid > *gid, u16 lid) > + > + switch (rdma_node_get_transport(qp->device->node_type)) { > + case RDMA_TRANSPORT_IB: > +- if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) > ++ if (qp->qp_type == IB_QPT_RAW_ETH) { > ++ /* In raw Etherent mgids the 63 msb's should be 0 */ > ++ if (gid->global.subnet_prefix & cpu_to_be64(~1ULL)) > ++ return -EINVAL; > ++ } else if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) > + return -EINVAL; > + break; > + case RDMA_TRANSPORT_IWARP: > +diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h > +index 3a5a40f..2162253 100644 > +--- a/include/rdma/ib_verbs.h > b/include/rdma/ib_verbs.h > +@@ -571,6 +571,7 @@ enum ib_qp_type { > + IB_QPT_UD, > + IB_QPT_XRC, > + IB_QPT_RAW_IPV6, > ++ IB_QPT_RAW_ETH, > + IB_QPT_RAW_ETY > + }; > + > +-- > +1.6.5.2 > + > > > ___ > ewg mailing list > ewg@lists.openfabrics.org > http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg > > ___ > ewg mailing list > ewg@lists.openfabrics.org > http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg > ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] [PATCH v4] MLX4: RAW ETH support
This patch adds RAW ETH support to mlx4 driver. diff --git a/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch b/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch new file mode 100644 index 000..66a1c54 --- /dev/null +++ b/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch @@ -0,0 +1,251 @@ +Add RAW ETH QP support to Mellanox adapters +This patch relies on the RAW ETH patch to the ib core. + +Signed-off-by: Aleksey Senin +--- + drivers/infiniband/hw/mlx4/main.c | 13 + + drivers/infiniband/hw/mlx4/qp.c | 22 ++ + drivers/net/mlx4/mcg.c| 22 +- + include/linux/mlx4/device.h |7 +-- + include/linux/mlx4/driver.h |5 + + 5 files changed, 50 insertions(+), 19 deletions(-) + +diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c +index c146b84..43d0ccc 100644 +--- a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c +@@ -684,7 +684,9 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + struct mlx4_ib_qp *mqp = to_mqp(ibqp); + + err = mlx4_multicast_attach(mdev->dev, &mqp->mqp, gid->raw, !!(mqp->flags & +- MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK)); ++ MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK), ++ (ibqp->qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + if (err) + return err; + +@@ -695,7 +697,9 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + return 0; + + err_add: +- mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw); ++ mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw, ++ (ibqp->qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + return err; + } + +@@ -724,8 +728,9 @@ static int mlx4_ib_mcg_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + struct net_device *ndev; + struct gid_entry *ge; + +- err = mlx4_multicast_detach(mdev->dev, +- &mqp->mqp, gid->raw); ++ err = mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw, ++ (ibqp->qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + if (err) + return err; + +diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c +index 422d367..c50e110 100644 +--- a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c +@@ -811,6 +811,7 @@ struct ib_qp *mlx4_ib_create_qp(struct ib_pd *pd, + case IB_QPT_RC: + case IB_QPT_UC: + case IB_QPT_UD: ++ case IB_QPT_RAW_ETH: + { + qp = kzalloc(sizeof *qp, GFP_KERNEL); + if (!qp) +@@ -902,6 +903,7 @@ static int to_mlx4_st(enum ib_qp_type type) + case IB_QPT_RAW_ETY: + case IB_QPT_SMI: + case IB_QPT_GSI:return MLX4_QP_ST_MLX; ++ case IB_QPT_RAW_ETH:return MLX4_QP_ST_MLX; + default:return -1; + } + } +@@ -1064,8 +1066,9 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, + break; + } + } +- +- if (ibqp->qp_type == IB_QPT_GSI || ibqp->qp_type == IB_QPT_SMI || ++ if (ibqp->qp_type == IB_QPT_RAW_ETH) ++ context->mtu_msgmax = 0xff; ++ else if (ibqp->qp_type == IB_QPT_GSI || ibqp->qp_type == IB_QPT_SMI || + ibqp->qp_type == IB_QPT_RAW_ETY) + context->mtu_msgmax = (IB_MTU_4096 << 5) | 11; + else if (ibqp->qp_type == IB_QPT_UD) { +@@ -1237,7 +1240,8 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, + if (cur_state == IB_QPS_INIT && + new_state == IB_QPS_RTR && + (ibqp->qp_type == IB_QPT_GSI || ibqp->qp_type == IB_QPT_SMI || +- ibqp->qp_type == IB_QPT_UD || ibqp->qp_type == IB_QPT_RAW_ETY)) { ++ ibqp->qp_type == IB_QPT_UD || ibqp->qp_type == IB_QPT_RAW_ETY || ++ ibqp->qp_type == IB_QPT_RAW_ETH)) { + context->pri_path.sched_queue = (qp->port - 1) << 6; + if (is_qp0(dev, qp)) + context->pri_path.sched_queue |= MLX4_IB_DEFAULT_QP0_SCHED_QUEUE; +@@ -1356,7 +1360,7 @@ int mlx4_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, + goto out; + } + +- if ((attr_mask & IB_QP_PORT) && ++ if ((attr_mask & IB_QP_PORT) && (ibqp->qp_type != IB_QPT_RAW_ETH) && + (attr->port_num == 0 || attr->port_num > dev->num_ports)) { + mlx4_ib_dbg("qpn 0x%x: invalid port number (%d) specified " + "for transition %d to %d. qp_type %d", +@@ -1365,6 +1369,16 @@ int mlx4_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, + goto out; + } + ++
[ewg] [PATCH v4] IB Core: RAW ETH support
This patch adds support to RAW ETH QP in ib core. diff --git a/kernel_patches/fixes/core_0560_raw_eth_common.patch b/kernel_patches/fixes/core_0560_raw_eth_common.patch new file mode 100644 index 000..ae43298 --- /dev/null +++ b/kernel_patches/fixes/core_0560_raw_eth_common.patch @@ -0,0 +1,63 @@ + Add new RAW_ETH QP type in order to build RAW Ethernet packets + over iWARP and RoCEE. + + +Signed-off-by: Aleksey Senin +--- + drivers/infiniband/core/verbs.c | 13 +++-- + include/rdma/ib_verbs.h |1 + + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +index 881850e..bb4dcd5 100644 +--- a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +@@ -382,6 +382,7 @@ static const struct { + [IB_QPT_UD] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_QKEY), ++ [IB_QPT_RAW_ETH] = IB_QP_PORT, + [IB_QPT_UC] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_ACCESS_FLAGS), +@@ -1004,7 +1005,11 @@ int ib_attach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp->device->node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) ++ if (qp->qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid->global.subnet_prefix & cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +@@ -1023,7 +1028,11 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp->device->node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) ++ if (qp->qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid->global.subnet_prefix & cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +index 3a5a40f..2162253 100644 +--- a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +@@ -571,6 +571,7 @@ enum ib_qp_type { + IB_QPT_UD, + IB_QPT_XRC, + IB_QPT_RAW_IPV6, ++ IB_QPT_RAW_ETH, + IB_QPT_RAW_ETY + }; + +-- +1.6.5.2 + ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [PATCH v3] IB Core: RAW ETH support
Alekseys Senin wrote: > + Add new RAW_ETY QP type in order to build RAW Ethernet packets over iWARP > and RoCEE. > +--- a/include/rdma/ib_verbs.h > b/include/rdma/ib_verbs.h > +@@ -571,6 +571,7 @@ enum ib_qp_type { > + IB_QPT_UD, > + IB_QPT_XRC, > + IB_QPT_RAW_IPV6, > ++IB_QPT_RAW_ETH, > + IB_QPT_RAW_ETY I got confused here, the change log say you add RAW_ETY wheres the patch adds RAW_ETH, which is correct? can you please fix that. Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
[ewg] [PATCH v3] MLX4: RAW ETH support
This patch adds RAW ETH support to mlx4 driver. diff --git a/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch b/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch new file mode 100644 index 000..66a1c54 --- /dev/null +++ b/kernel_patches/fixes/mlx4_x_0050_raw_eth.patch @@ -0,0 +1,251 @@ +Add RAW ETH QP support to Mellanox adapters +This patch relies on the RAW ETH patch to the ib core. + +Signed-off-by: Aleksey Senin +--- + drivers/infiniband/hw/mlx4/main.c | 13 + + drivers/infiniband/hw/mlx4/qp.c | 22 ++ + drivers/net/mlx4/mcg.c| 22 +- + include/linux/mlx4/device.h |7 +-- + include/linux/mlx4/driver.h |5 + + 5 files changed, 50 insertions(+), 19 deletions(-) + +diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c +index c146b84..43d0ccc 100644 +--- a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c +@@ -684,7 +684,9 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + struct mlx4_ib_qp *mqp = to_mqp(ibqp); + + err = mlx4_multicast_attach(mdev->dev, &mqp->mqp, gid->raw, !!(mqp->flags & +- MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK)); ++ MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK), ++ (ibqp->qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + if (err) + return err; + +@@ -695,7 +697,9 @@ static int mlx4_ib_mcg_attach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + return 0; + + err_add: +- mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw); ++ mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw, ++ (ibqp->qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + return err; + } + +@@ -724,8 +728,9 @@ static int mlx4_ib_mcg_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid) + struct net_device *ndev; + struct gid_entry *ge; + +- err = mlx4_multicast_detach(mdev->dev, +- &mqp->mqp, gid->raw); ++ err = mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw, ++ (ibqp->qp_type == IB_QPT_RAW_ETH) ? ++ MLX4_MCAST_PROT_EN : MLX4_MCAST_PROT_IB); + if (err) + return err; + +diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c +index 422d367..c50e110 100644 +--- a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c +@@ -811,6 +811,7 @@ struct ib_qp *mlx4_ib_create_qp(struct ib_pd *pd, + case IB_QPT_RC: + case IB_QPT_UC: + case IB_QPT_UD: ++ case IB_QPT_RAW_ETH: + { + qp = kzalloc(sizeof *qp, GFP_KERNEL); + if (!qp) +@@ -902,6 +903,7 @@ static int to_mlx4_st(enum ib_qp_type type) + case IB_QPT_RAW_ETY: + case IB_QPT_SMI: + case IB_QPT_GSI:return MLX4_QP_ST_MLX; ++ case IB_QPT_RAW_ETH:return MLX4_QP_ST_MLX; + default:return -1; + } + } +@@ -1064,8 +1066,9 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, + break; + } + } +- +- if (ibqp->qp_type == IB_QPT_GSI || ibqp->qp_type == IB_QPT_SMI || ++ if (ibqp->qp_type == IB_QPT_RAW_ETH) ++ context->mtu_msgmax = 0xff; ++ else if (ibqp->qp_type == IB_QPT_GSI || ibqp->qp_type == IB_QPT_SMI || + ibqp->qp_type == IB_QPT_RAW_ETY) + context->mtu_msgmax = (IB_MTU_4096 << 5) | 11; + else if (ibqp->qp_type == IB_QPT_UD) { +@@ -1237,7 +1240,8 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, + if (cur_state == IB_QPS_INIT && + new_state == IB_QPS_RTR && + (ibqp->qp_type == IB_QPT_GSI || ibqp->qp_type == IB_QPT_SMI || +- ibqp->qp_type == IB_QPT_UD || ibqp->qp_type == IB_QPT_RAW_ETY)) { ++ ibqp->qp_type == IB_QPT_UD || ibqp->qp_type == IB_QPT_RAW_ETY || ++ ibqp->qp_type == IB_QPT_RAW_ETH)) { + context->pri_path.sched_queue = (qp->port - 1) << 6; + if (is_qp0(dev, qp)) + context->pri_path.sched_queue |= MLX4_IB_DEFAULT_QP0_SCHED_QUEUE; +@@ -1356,7 +1360,7 @@ int mlx4_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, + goto out; + } + +- if ((attr_mask & IB_QP_PORT) && ++ if ((attr_mask & IB_QP_PORT) && (ibqp->qp_type != IB_QPT_RAW_ETH) && + (attr->port_num == 0 || attr->port_num > dev->num_ports)) { + mlx4_ib_dbg("qpn 0x%x: invalid port number (%d) specified " + "for transition %d to %d. qp_type %d", +@@ -1365,6 +1369,16 @@ int mlx4_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, + goto out; + } + ++
[ewg] [PATCH v3] IB Core: RAW ETH support
This patch adds support to RAW ETH QP in ib core. diff --git a/kernel_patches/fixes/core_0560_raw_eth_common.patch b/kernel_patches/fixes/core_0560_raw_eth_common.patch new file mode 100644 index 000..ae43298 --- /dev/null +++ b/kernel_patches/fixes/core_0560_raw_eth_common.patch @@ -0,0 +1,63 @@ + Add new RAW_ETY QP type in order to build RAW Ethernet packets + over iWARP and RoCEE. + + +Signed-off-by: Aleksey Senin +--- + drivers/infiniband/core/verbs.c | 13 +++-- + include/rdma/ib_verbs.h |1 + + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +index 881850e..bb4dcd5 100644 +--- a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c +@@ -382,6 +382,7 @@ static const struct { + [IB_QPT_UD] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_QKEY), ++ [IB_QPT_RAW_ETH] = IB_QP_PORT, + [IB_QPT_UC] = (IB_QP_PKEY_INDEX | + IB_QP_PORT | + IB_QP_ACCESS_FLAGS), +@@ -1004,7 +1005,11 @@ int ib_attach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp->device->node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) ++ if (qp->qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid->global.subnet_prefix & cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +@@ -1023,7 +1028,11 @@ int ib_detach_mcast(struct ib_qp *qp, union ib_gid *gid, u16 lid) + + switch (rdma_node_get_transport(qp->device->node_type)) { + case RDMA_TRANSPORT_IB: +- if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) ++ if (qp->qp_type == IB_QPT_RAW_ETH) { ++ /* In raw Etherent mgids the 63 msb's should be 0 */ ++ if (gid->global.subnet_prefix & cpu_to_be64(~1ULL)) ++ return -EINVAL; ++ } else if (gid->raw[0] != 0xff || qp->qp_type != IB_QPT_UD) + return -EINVAL; + break; + case RDMA_TRANSPORT_IWARP: +diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +index 3a5a40f..2162253 100644 +--- a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h +@@ -571,6 +571,7 @@ enum ib_qp_type { + IB_QPT_UD, + IB_QPT_XRC, + IB_QPT_RAW_IPV6, ++ IB_QPT_RAW_ETH, + IB_QPT_RAW_ETY + }; + +-- +1.6.5.2 + ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg
Re: [ewg] [ANNOUNCE] OFED 1.5.2 rc1 is available
Or Gerlitz wrote: > I don't see any mentioning of IBoE open issues, e.g depicted in ofa bz cases > such as: bz 2005 "Rocce fails when 1 port is IB and the other is Ethernet" bz > 2024 "clients fail when global pauses or PPP enabled on switch" bz 2043 "OFED > 1.5.1 crashes after running Mcast over RoCE" Hi Tziporet, I didn't see any response from you, can this be addressed? Or. ___ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg