[no subject]
Congratulation !! Confirm your 500,000,00 Euros. Contact claims office via : claimsoffic...@yeah.net -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/1] opensm/osm_node_info_rcv.c: Fix multiple switch discovery during a sweep
Because of the race between Get(SwitchInfo) and Get(NodeInfo) to the same switch, SM will send additional Get(SwitchInfo) before it get a first reply. In a sequence SM will send many redundant MADs and slow down the discovery process significantly. With this fix, when a switch doesn't respond to Get(SwitchInfo) once during the sweep it will be dropped. Signed-off-by: Alex Netes ale...@mellanox.com --- opensm/osm_node_info_rcv.c | 11 --- 1 files changed, 0 insertions(+), 11 deletions(-) diff --git a/opensm/osm_node_info_rcv.c b/opensm/osm_node_info_rcv.c index c0233f7..b7c20e8 100644 --- a/opensm/osm_node_info_rcv.c +++ b/opensm/osm_node_info_rcv.c @@ -573,20 +573,9 @@ static void ni_rcv_process_existing_switch(IN osm_sm_t * sm, /* If this switch has already been probed during this sweep, then don't bother reprobing it. - There is one exception - if the node has been visited, but - for some reason we don't have the switch object (this can happen - if the SwitchInfo mad didn't reach the SM) then we want - to retry to probe the switch. */ if (p_node-discovery_count == 1) ni_rcv_process_switch(sm, p_node, p_madw); - else if (!p_node-sw) { - /* we don't have the SwitchInfo - retry to get it */ - OSM_LOG(sm-p_log, OSM_LOG_DEBUG, - Retry to get SwitchInfo on node GUID:0x% PRIx64 \n, - cl_ntoh64(osm_node_get_node_guid(p_node))); - ni_rcv_process_switch(sm, p_node, p_madw); - } OSM_LOG_EXIT(sm-p_log); } -- 1.7.1 -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH for-3.14 1/5] IB/mlx4: Make sure GID index 0 is always occupied
From: Moni Shoua mo...@mellanox.co.il Make sure that for Ethernet ports, the port GID table index 0 is always occupied with a default GID of the relevant IPv6 link-local adderss. This provides better user-experience for legacy applications that don't use the rdma-cm and where working on index 0 prior to the IP addressing change. Also, as GIDs are generated from IP addresses of the network devices that are associated with the port, its basically possible that the GID table will be empty if no IP address was assigned. This doesn't comply to the IB spec section 4.1.1 GID usage and properties. Signed-off-by: Moni Shoua mo...@mellanox.co.il Signed-off-by: Or Gerlitz ogerl...@mellanox.com --- drivers/infiniband/hw/mlx4/main.c | 92 +++-- 1 files changed, 68 insertions(+), 24 deletions(-) diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c index d7a0619..06978cd 100644 --- a/drivers/infiniband/hw/mlx4/main.c +++ b/drivers/infiniband/hw/mlx4/main.c @@ -1357,6 +1357,21 @@ static struct device_attribute *mlx4_class_attributes[] = { dev_attr_board_id }; +static void mlx4_addrconf_ifid_eui48(u8 *eui, u16 vlan_id, +struct net_device *dev) +{ + memcpy(eui, dev-dev_addr, 3); + memcpy(eui + 5, dev-dev_addr + 3, 3); + if (vlan_id 0x1000) { + eui[3] = vlan_id 8; + eui[4] = vlan_id 0xff; + } else { + eui[3] = 0xff; + eui[4] = 0xfe; + } + eui[0] ^= 2; +} + static void update_gids_task(struct work_struct *work) { struct update_gid_work *gw = container_of(work, struct update_gid_work, work); @@ -1425,7 +1440,8 @@ free: } static int update_gid_table(struct mlx4_ib_dev *dev, int port, - union ib_gid *gid, int clear) + union ib_gid *gid, int clear, + int default_gid) { struct update_gid_work *work; int i; @@ -1434,26 +1450,31 @@ static int update_gid_table(struct mlx4_ib_dev *dev, int port, int found = -1; int max_gids; - max_gids = dev-dev-caps.gid_table_len[port]; - for (i = 0; i max_gids; ++i) { - if (!memcmp(dev-iboe.gid_table[port - 1][i], gid, - sizeof(*gid))) - found = i; - - if (clear) { - if (found = 0) { - need_update = 1; - dev-iboe.gid_table[port - 1][found] = zgid; - break; - } - } else { - if (found = 0) - break; - - if (free 0 - !memcmp(dev-iboe.gid_table[port - 1][i], zgid, + if (default_gid) { + free = 0; + } else { + max_gids = dev-dev-caps.gid_table_len[port]; + for (i = 1; i max_gids; ++i) { + if (!memcmp(dev-iboe.gid_table[port - 1][i], gid, sizeof(*gid))) - free = i; + found = i; + + if (clear) { + if (found = 0) { + need_update = 1; + dev-iboe.gid_table[port - 1][found] = + zgid; + break; + } + } else { + if (found = 0) + break; + + if (free 0 + !memcmp(dev-iboe.gid_table[port - 1][i], + zgid, sizeof(*gid))) + free = i; + } } } @@ -1478,6 +1499,13 @@ static int update_gid_table(struct mlx4_ib_dev *dev, int port, return 0; } +static void mlx4_make_default_gid(struct net_device *dev, union ib_gid *gid) +{ + gid-global.subnet_prefix = cpu_to_be64(0xfe80LL); + mlx4_addrconf_ifid_eui48(gid-raw[8], 0x, dev); +} + + static int reset_gid_table(struct mlx4_ib_dev *dev) { struct update_gid_work *work; @@ -1502,6 +1530,12 @@ static int mlx4_ib_addr_event(int event, struct net_device *event_netdev, struct net_device *real_dev = rdma_vlan_dev_real_dev(event_netdev) ? rdma_vlan_dev_real_dev(event_netdev) : event_netdev; + union ib_gid default_gid; + + mlx4_make_default_gid(real_dev, default_gid); + + if (!memcmp(gid, default_gid, sizeof(*gid))) + return 0; if (event != NETDEV_DOWN event != NETDEV_UP)
[PATCH for-3.14 2/5] IB/mlx4: Move rtnl locking to the right location
From: Moni Shoua mo...@mellanox.co.il On the one hand, the invocation of netdev_master_upper_dev_get() within mlx4_ib_scan_netdevs() must be done with rtnl lock held. On the other hand, it's wrong to call rtnl_lock() from within this function since its also called by our netdev notifier callback. As such, remove the locking to take place in mlx4_ib_add() such that both cases are covered. Signed-off-by: Moni Shoua mo...@mellanox.co.il Signed-off-by: Or Gerlitz ogerl...@mellanox.com --- drivers/infiniband/hw/mlx4/main.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c index 06978cd..e05f888 100644 --- a/drivers/infiniband/hw/mlx4/main.c +++ b/drivers/infiniband/hw/mlx4/main.c @@ -1707,10 +1707,8 @@ static void mlx4_ib_scan_netdevs(struct mlx4_ib_dev *ibdev) iboe-netdevs[port - 1], port); if (iboe-netdevs[port - 1] netif_is_bond_slave(iboe-netdevs[port - 1])) { - rtnl_lock(); iboe-masters[port - 1] = netdev_master_upper_dev_get( iboe-netdevs[port - 1]); - rtnl_unlock(); } curr_master = iboe-masters[port - 1]; @@ -2100,7 +2098,9 @@ static void *mlx4_ib_add(struct mlx4_dev *dev) } } #endif + rtnl_lock(); mlx4_ib_scan_netdevs(ibdev); + rtnl_unlock(); mlx4_ib_init_gid_table(ibdev); } -- 1.7.1 -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH for-3.14 0/5] mlx4 IP addressing fixes
Hi Roland, This batch contain few small fixes to the mlx4 logic that deals with managing the RoCE ports GID table management under IP addressing, which needs to go into 3.14 along with the other two patches I sent you earlier this week. Or. Moni Shoua (5): IB/mlx4: Make sure GID index 0 is always occupied IB/mlx4: Move rtnl locking to the right location IB/mlx4: Do IBoE locking earlier when initializing the GID table IB/mlx4: Do IBoE GID table resets in port based manner IB/mlx4: Build the port IBoE GID table properly under bonding drivers/infiniband/hw/mlx4/main.c | 176 ++-- 1 files changed, 127 insertions(+), 49 deletions(-) -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH for-3.14 3/5] IB/mlx4: Do IBoE locking earlier when initializing the GID table
From: Moni Shoua mo...@mellanox.co.il Updating the GID table under IBoE requires read/write from/to shared data structures. These data structures are protected with the device iboe lock. The flows that modify the GID table start from 1. Initializing the GID table 2. NETDEV events 3. INET or INET6 events This patch makes sure that the flow of initializing the GID table is consistent with the other two flow w.r.t on what step the lock is taken. Signed-off-by: Moni Shoua mo...@mellanox.co.il Signed-off-by: Or Gerlitz ogerl...@mellanox.com --- drivers/infiniband/hw/mlx4/main.c |6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c index e05f888..00a1651 100644 --- a/drivers/infiniband/hw/mlx4/main.c +++ b/drivers/infiniband/hw/mlx4/main.c @@ -1570,7 +1570,6 @@ static u8 mlx4_ib_get_dev_port(struct net_device *dev, rdma_vlan_dev_real_dev(dev) : dev; iboe = ibdev-iboe; - spin_lock(iboe-lock); for (port = 1; port = MLX4_MAX_PORTS; ++port) if ((netif_is_bond_master(real_dev) @@ -1579,8 +1578,6 @@ static u8 mlx4_ib_get_dev_port(struct net_device *dev, (real_dev == iboe-netdevs[port - 1]))) break; - spin_unlock(iboe-lock); - if ((port == 0) || (port MLX4_MAX_PORTS)) return 0; else @@ -1672,11 +1669,13 @@ static void mlx4_ib_set_default_gid(struct mlx4_ib_dev *ibdev, static int mlx4_ib_init_gid_table(struct mlx4_ib_dev *ibdev) { struct net_device *dev; + struct mlx4_ib_iboe *iboe = ibdev-iboe; if (reset_gid_table(ibdev)) return -1; read_lock(dev_base_lock); + spin_lock(iboe-lock); for_each_netdev(init_net, dev) { u8 port = mlx4_ib_get_dev_port(dev, ibdev); @@ -1684,6 +1683,7 @@ static int mlx4_ib_init_gid_table(struct mlx4_ib_dev *ibdev) mlx4_ib_get_dev_addr(dev, ibdev, port); } + spin_unlock(iboe-lock); read_unlock(dev_base_lock); return 0; -- 1.7.1 -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH for-3.14 5/5] IB/mlx4: Build the port IBoE GID table properly under bonding
From: Moni Shoua mo...@mellanox.co.il When scanning netdevices we need to check few more conditions and cases to build the IBoE GID table properly. For example, under a bonding use-case we must make sure that when a port is down, the bond IP address isn't programmed there as GID, since not doing so will cause failure with IB core flows that selects ports by GID. Signed-off-by: Moni Shoua mo...@mellanox.co.il Signed-off-by: Or Gerlitz ogerl...@mellanox.com --- drivers/infiniband/hw/mlx4/main.c | 41 +--- 1 files changed, 37 insertions(+), 4 deletions(-) diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c index 85fbb41..e81c554 100644 --- a/drivers/infiniband/hw/mlx4/main.c +++ b/drivers/infiniband/hw/mlx4/main.c @@ -1507,7 +1507,6 @@ static int reset_gid_table(struct mlx4_ib_dev *dev, u8 port) { struct update_gid_work *work; - work = kzalloc(sizeof(*work), GFP_ATOMIC); if (!work) return -ENOMEM; @@ -1699,25 +1698,57 @@ static void mlx4_ib_scan_netdevs(struct mlx4_ib_dev *ibdev) spin_lock(iboe-lock); mlx4_foreach_ib_transport_port(port, ibdev-dev) { + enum ib_port_state port_state = IB_PORT_NOP; struct net_device *old_master = iboe-masters[port - 1]; + struct net_device *curr_netdev; struct net_device *curr_master; + iboe-netdevs[port - 1] = mlx4_get_protocol_dev(ibdev-dev, MLX4_PROT_ETH, port); if (iboe-netdevs[port - 1]) mlx4_ib_set_default_gid(ibdev, iboe-netdevs[port - 1], port); + curr_netdev = iboe-netdevs[port - 1]; + if (iboe-netdevs[port - 1] netif_is_bond_slave(iboe-netdevs[port - 1])) { iboe-masters[port - 1] = netdev_master_upper_dev_get( iboe-netdevs[port - 1]); + } else { + iboe-masters[port - 1] = NULL; } curr_master = iboe-masters[port - 1]; + if (curr_netdev) { + port_state = (netif_running(curr_netdev) netif_carrier_ok(curr_netdev)) ? + IB_PORT_ACTIVE : IB_PORT_DOWN; + mlx4_ib_set_default_gid(ibdev, curr_netdev, port); + } else { + reset_gid_table(ibdev, port); + } + /* if using bonding/team and a slave port is down, we don't the bond IP +* based gids in the table since flows that select port by gid may get +* the down port. +*/ + if (curr_master (port_state == IB_PORT_DOWN)) { + reset_gid_table(ibdev, port); + mlx4_ib_set_default_gid(ibdev, curr_netdev, port); + } /* if bonding is used it is possible that we add it to masters - only after IP address is assigned to the net bonding - interface */ - if (curr_master (old_master != curr_master)) +* only after IP address is assigned to the net bonding +* interface. + */ + if (curr_master (old_master != curr_master)) { + reset_gid_table(ibdev, port); + mlx4_ib_set_default_gid(ibdev, curr_netdev, port); mlx4_ib_get_dev_addr(curr_master, ibdev, port); + } + + if (!curr_master (old_master != curr_master)) { + reset_gid_table(ibdev, port); + mlx4_ib_set_default_gid(ibdev, curr_netdev, port); + mlx4_ib_get_dev_addr(curr_netdev, ibdev, port); + } } spin_unlock(iboe-lock); @@ -2099,6 +2130,8 @@ static void *mlx4_ib_add(struct mlx4_dev *dev) } } #endif + for (i = 1 ; i = ibdev-num_ports ; ++i) + reset_gid_table(ibdev, i); rtnl_lock(); mlx4_ib_scan_netdevs(ibdev); rtnl_unlock(); -- 1.7.1 -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH for-3.14 4/5] IB/mlx4: Do IBoE GID table resets in port based manner
From: Moni Shoua mo...@mellanox.co.il The IBoE code used to reset the GID table did it for all Ethernet ports of the device. Since the whole architecture of generating GIDs and responding to events is port based, this is inefficient and can lead to wrong content in the GID table. Change the reset flow to act accordingly. Signed-off-by: Moni Shoua mo...@mellanox.co.il Signed-off-by: Or Gerlitz ogerl...@mellanox.com --- drivers/infiniband/hw/mlx4/main.c | 35 ++- 1 files changed, 18 insertions(+), 17 deletions(-) diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c index 00a1651..85fbb41 100644 --- a/drivers/infiniband/hw/mlx4/main.c +++ b/drivers/infiniband/hw/mlx4/main.c @@ -1408,7 +1408,6 @@ static void reset_gids_task(struct work_struct *work) struct mlx4_cmd_mailbox *mailbox; union ib_gid *gids; int err; - int i; struct mlx4_dev *dev = gw-dev-dev; mailbox = mlx4_alloc_cmd_mailbox(dev); @@ -1420,18 +1419,16 @@ static void reset_gids_task(struct work_struct *work) gids = mailbox-buf; memcpy(gids, gw-gids, sizeof(gw-gids)); - for (i = 1; i gw-dev-num_ports + 1; i++) { - if (mlx4_ib_port_link_layer(gw-dev-ib_dev, i) == - IB_LINK_LAYER_ETHERNET) { - err = mlx4_cmd(dev, mailbox-dma, - MLX4_SET_PORT_GID_TABLE 8 | i, - 1, MLX4_CMD_SET_PORT, - MLX4_CMD_TIME_CLASS_B, - MLX4_CMD_WRAPPED); - if (err) - pr_warn(KERN_WARNING - set port %d command failed\n, i); - } + if (mlx4_ib_port_link_layer(gw-dev-ib_dev, gw-port) == + IB_LINK_LAYER_ETHERNET) { + err = mlx4_cmd(dev, mailbox-dma, + MLX4_SET_PORT_GID_TABLE 8 | gw-port, + 1, MLX4_CMD_SET_PORT, + MLX4_CMD_TIME_CLASS_B, + MLX4_CMD_WRAPPED); + if (err) + pr_warn(KERN_WARNING + set port %d command failed\n, gw-port); } mlx4_free_cmd_mailbox(dev, mailbox); @@ -1506,7 +1503,7 @@ static void mlx4_make_default_gid(struct net_device *dev, union ib_gid *gid) } -static int reset_gid_table(struct mlx4_ib_dev *dev) +static int reset_gid_table(struct mlx4_ib_dev *dev, u8 port) { struct update_gid_work *work; @@ -1514,10 +1511,12 @@ static int reset_gid_table(struct mlx4_ib_dev *dev) work = kzalloc(sizeof(*work), GFP_ATOMIC); if (!work) return -ENOMEM; - memset(dev-iboe.gid_table, 0, sizeof(dev-iboe.gid_table)); + + memset(dev-iboe.gid_table[port - 1], 0, sizeof(work-gids)); memset(work-gids, 0, sizeof(work-gids)); INIT_WORK(work-work, reset_gids_task); work-dev = dev; + work-port = port; queue_work(wq, work-work); return 0; } @@ -1670,9 +1669,11 @@ static int mlx4_ib_init_gid_table(struct mlx4_ib_dev *ibdev) { struct net_device *dev; struct mlx4_ib_iboe *iboe = ibdev-iboe; + int i; - if (reset_gid_table(ibdev)) - return -1; + for (i = 1; i = ibdev-num_ports; ++i) + if (reset_gid_table(ibdev, i)) + return -1; read_lock(dev_base_lock); spin_lock(iboe-lock); -- 1.7.1 -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH for-3.14 1/5] IB/mlx4: Make sure GID index 0 is always occupied
On 05/02/2014 15:12, Or Gerlitz wrote: From: Moni Shouamo...@mellanox.co.il Make sure that for Ethernet ports, the port GID table index 0 is always occupied with a default GID of the relevant IPv6 link-local adderss. This provides better user-experience for legacy applications that don't use the rdma-cm and where working on index 0 prior to the IP addressing change. Roland, I see here small typo where instead of were, care to fix that yourself? -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [ceph-users] Help needed porting Ceph to RSockets
2013-10-31 Hefty, Sean sean.he...@intel.com: Can you please try the attached patch in place of all previous patches? Any updates on ceph with rsockets? -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] opensm: Rename ib_switch_info_set_state_change function in ib_types.h
Function name collides with a function defined ibutils package. New name: ib_switch_info_state_change_set Signed-off-by: Alex Netes ale...@mellanox.com --- include/iba/ib_types.h |6 +++--- opensm/osm_state_mgr.c |2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/iba/ib_types.h b/include/iba/ib_types.h index 249ee16..a0bb31c 100644 --- a/include/iba/ib_types.h +++ b/include/iba/ib_types.h @@ -6507,9 +6507,9 @@ ib_switch_info_clear_state_change(IN ib_switch_info_t * const p_si) * SEE ALSO */ -/f* IBA Base: Types/ib_switch_info_set_state_change +/f* IBA Base: Types/ib_switch_info_state_change_set * NAME -* ib_switch_info_set_state_change +* ib_switch_info_state_change_set * * DESCRIPTION * Clears the switch's state change bit. @@ -6517,7 +6517,7 @@ ib_switch_info_clear_state_change(IN ib_switch_info_t * const p_si) * SYNOPSIS */ static inline void OSM_API -ib_switch_info_set_state_change(IN ib_switch_info_t * const p_si) +ib_switch_info_state_change_set(IN ib_switch_info_t * const p_si) { p_si-life_state = (uint8_t) ((p_si-life_state ~IB_SWITCH_PSC) | IB_SWITCH_PSC); } diff --git a/opensm/osm_state_mgr.c b/opensm/osm_state_mgr.c index 5080b22..f9b20e2 100644 --- a/opensm/osm_state_mgr.c +++ b/opensm/osm_state_mgr.c @@ -559,7 +559,7 @@ static void state_mgr_reset_state_change_bit(IN cl_map_item_t * obj, si = p_sw-switch_info; - ib_switch_info_set_state_change(si); + ib_switch_info_state_change_set(si); OSM_LOG(sm-p_log, OSM_LOG_DEBUG, Resetting PortStateChange on switch GUID 0x%016 PRIx64 \n, -- 1.7.1 -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
ipoib - problems with offloading checksums
Problem - offloading checksumms does not work, although the Kernel documentation indicates it should [root@eha001 ~]# ethtool -K ib0 tx on Cannot set device tx-checksumming settings: Operation not supported IPoIB connected mode is switched of: SET_IPOIB_CM=no This problem exists on both Mellanox/Qlogic cards with either SW stack mentioned. Could anyone advise on this problem? Hardware: Intel EP server with 2x Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz IB cards: QLogic Corp. IBA7322 QDR InfiniBand HCA (rev 02) , Mellanox Technologies MT27500 Family [ConnectX-3] OS: Redhat 6.4, kernel updated to latest RH supplied kernel via KSplice technology InfiniBand Software: tried IntelIB-IFS.RHEL6-x86_64.7.2.1.1.22 (based on OFED 1.5.4.1) or OFED-3.5-MIC-alpha1 Many thanks Michael Michael Hebenstreit Senior Cluster Architect Intel Corporation, MS: RR1-105/H14 Software and Services Group/DCE 4100 Sara Road Tel.: +1 505-794-3144 Rio Rancho, NM 87124 UNITED STATES E-mail: michael.hebenstr...@intel.com -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 1/1] opensm/osm_node_info_rcv.c: Fix multiple switch discovery during a sweep
On 2/5/2014 5:08 AM, Alex Netes wrote: Because of the race between Get(SwitchInfo) and Get(NodeInfo) to the same switch, SM will send additional Get(SwitchInfo) before it get a first reply. In a sequence SM will send many redundant MADs and slow down the discovery process significantly. With this fix, when a switch doesn't respond to Get(SwitchInfo) once during the sweep it will be dropped. Signed-off-by: Alex Netes ale...@mellanox.com Thanks. Applied. -- Hal -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] opensm: Rename ib_switch_info_set_state_change function in ib_types.h
On 2/5/2014 7:25 AM, Alex Netes wrote: Function name collides with a function defined ibutils package. New name: ib_switch_info_state_change_set Signed-off-by: Alex Netes ale...@mellanox.com Thanks. Applied. -- Hal -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[ANNOUNCE] libibumad 1.3.9 release
There is a new 1.3.9 release of libibumad. Tarball is available in: http://www.openfabrics.org/downloads/management/ (listed in http://www.openfabrics.org/downloads/management/latest.txt) md5sum: 52a81356906f4faf29a6cf9583161aa8 libibumad-1.3.9.tar.gz Alex Netes (1): libibumad: Fix memory leak in resolve_ca_port Hal Rosenstock (2): libibumad: update shared library version libibumad: package version update for 1.3.9 release Ilya Nelkenbaum (1): libibumad/umad.c: In resolve_ca_port, skip ethernet link layer ports Ira Weiny (3): libibumad: fix umad_register man page libibumad: update umad_[send|recv] man pages to document how rmpp is handled libibumad: document the setting of errno for umad_send and umad_recv -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[ANNOUNCE] librdmacm 1.0.18 release
There is a new 1.0.18 release of the librdmacm available. It may be downloaded from: http://www.openfabrics.org/downloads/rdmacm/ md5sum 786b76ce5f1da97d2b0fd8d787a7add0 librdmacm-1.0.18.tar.gz The following changes were made between 1.0.17 and 1.0.18. Bart Van Assche (6): Add foreign option to AM_INIT_AUTOMAKE Makefile.am: Fix an automake warning [1/4] acm: Remove the unused variable 'pri_path' [2/4] cma: Remove the unused variable 'id_priv' [3/4] rsocket: Remove the unused variable 'ret' [4/4] Declare 'server_port' as an unsigned variable Guy Shapiro (1): librdmacm: Some fixes to man pages Hal Rosenstock (4): [librdmacm] man/rdma_create_id.3: Add RDMA_PS_IB port space description [librdmacm] rstream.c: Indicate when specified address family is unknown [librdmacm] man/rstream.1: Update man page to be consistent with rstream - [librdmacm] Makefile.am: Add missing riostream man page to man_MANS Jeff Squyres (1): autogen.sh: Use autoreconf in autogen.sh Or Gerlitz (1): librdmacm: Add directives on binding to IPv6 any address to man pages Sean Hefty (22): rsocket: Merge usage of wr_id between stream and datagram svcs rsocket: Add support for iWarp lib: Rename configure.in to configure.ac cmatose: Allow user to specify address format acm: Define needed ACM protocol messages init: Remove USE_IB_ACM configuration option rsockets: Support native IB addressing on connected rsockets examples: Add support for native IB addressing to samples rsockets: Add ability to set the IB route directly rsocket: Return 0 on success for SOL_RDMA options rstream: Use rsocket option to set route directly cmtime: Add example program that times rdma cm calls cmtime: Add ability to time rdma_bind_addr calls cmtime: Allow user to specify timeout values cmtime: Add retry support for address and route resolution rsocket: Update rsocket man page rsockets: Handle race between rshutdown and rpoll Retrieve SGID after calling rdma_bind_addr rping: Fix server reporting error on exit librdmacm: Check 'init' under mutex udaddy: Remove support for port space IB librdmacm 1.0.18 Susan K. Coulter (1): rsocket: Add keepalive logic Yan Droneaud (1): examples: Add cmtime to .gitignore Yann Droneaud (5): configure: Apply updates proposed by autoupdate configure: Use automake's option subdir-objects Add .gitignore rules Open files with close on exec flag Remove executable mode bit on text files -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] IB: Refactor umem to use linear SG table
On Feb 2, 2014, at 11:30 PM, Shachar Raindel rain...@mellanox.com wrote: Follow up. You can probably offer a patch to ib_umem_get, passing a flag to it identifying if it should also do the DMA mapping, and use the same code base as the rest of the IB drivers. The usnic memory management stuff is entirely freed of ib objects. If we were to move to using ib_umem_get, the code would get corrupted with ib objects. There are also other subtle minor differences. The overlap with ib_umem_get is minor, so I am not going to port this code over to use ib_umem_get. A better solution would be to fix Intel's IOMMU code such that it works properly if the page is mapped using both dma_map_sg and the IOMMU API. Any particular reason that the code in usNIC that walks the chunk sg's isn't ported to the linear SG table? As your code didn't use the API which we changed, we preferred avoiding changing it, to avoid introducing issues into the code, especially when we don't have the needed hardware to test your code on. You are more than welcome to implement a similar change in your code, or port your code to use the ib_umem_get API. I will submit a patch for this. -- To unsubscribe from this list: send the line unsubscribe linux-rdma in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html