- 18 May, 2015 3 commits
-
-
Michael Wang authored
Introduce helper rdma_cap_eth_ah() to help us check if the port of an IB device support Ethernet Address Handler. Signed-off-by:
Michael Wang <yun.wang@profitbricks.com> Reviewed-by:
Ira Weiny <ira.weiny@intel.com> Tested-by:
Ira Weiny <ira.weiny@intel.com> Reviewed-by:
Sean Hefty <sean.hefty@intel.com> Reviewed-by:
Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Tested-by:
Doug Ledford <dledford@redhat.com> Signed-off-by:
Doug Ledford <dledford@redhat.com>
-
Michael Wang authored
Introduce helper rdma_cap_ib_sa() to help us check if the port of an IB device support Infiniband Subnet Administration. Signed-off-by:
Michael Wang <yun.wang@profitbricks.com> Reviewed-by:
Ira Weiny <ira.weiny@intel.com> Tested-by:
Ira Weiny <ira.weiny@intel.com> Reviewed-by:
Sean Hefty <sean.hefty@intel.com> Reviewed-by:
Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Tested-by:
Doug Ledford <dledford@redhat.com> Signed-off-by:
Doug Ledford <dledford@redhat.com>
-
Michael Wang authored
Use raw management helpers to reform IB-core sa_query. Signed-off-by:
Michael Wang <yun.wang@profitbricks.com> Reviewed-by:
Ira Weiny <ira.weiny@intel.com> Tested-by:
Ira Weiny <ira.weiny@intel.com> Reviewed-by:
Sean Hefty <sean.hefty@intel.com> Reviewed-by:
Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Tested-by:
Doug Ledford <dledford@redhat.com> Signed-off-by:
Doug Ledford <dledford@redhat.com>
-
- 11 Aug, 2014 1 commit
-
-
Ira Weiny authored
Registrations options are specified through flags. Definitions of flags will be in subsequent patches. Signed-off-by:
Ira Weiny <ira.weiny@intel.com> Signed-off-by:
Roland Dreier <roland@purestorage.com>
-
- 03 Jun, 2014 1 commit
-
-
Roland Dreier authored
Properly convert gfp_t & result to bool to fix: drivers/infiniband/core/sa_query.c:621:33: warning: incorrect type in initializer (different base types) drivers/infiniband/core/sa_query.c:621:33: expected bool [unsigned] [usertype] preload drivers/infiniband/core/sa_query.c:621:33: got restricted gfp_t Signed-off-by:
Roland Dreier <roland@purestorage.com>
-
- 14 Jan, 2014 1 commit
-
-
Matan Barak authored
This patch add the support for Ethernet L2 attributes in the verbs/cm/cma structures. When dealing with L2 Ethernet, we should use smac, dmac, vlan ID and priority in a similar manner that the IB L2 (and the L4 PKEY) attributes are used. Thus, those attributes were added to the following structures: * ib_ah_attr - added dmac * ib_qp_attr - added smac and vlan_id, (sl remains vlan priority) * ib_wc - added smac, vlan_id * ib_sa_path_rec - added smac, dmac, vlan_id * cm_av - added smac and vlan_id For the path record structure, extra care was taken to avoid the new fields when packing it into wire format, so we don't break the IB CM and SA wire protocol. On the active side, the CM fills. its internal structures from the path provided by the ULP. We add there taking the ETH L2 attributes and placing them into the CM Address Handle (struct cm_av). On the passive side, the CM fills its internal structures from the WC associated with the REQ message. We add there taking the ETH L2 attributes from the WC. When the HW driver provides the required ETH L2 attributes in the WC, they set the IB_WC_WITH_SMAC and IB_WC_WITH_VLAN flags. The IB core code checks for the presence of these flags, and in their absence does address resolution from the ib_init_ah_from_wc() helper function. ib_modify_qp_is_ok is also updated to consider the link layer. Some parameters are mandatory for Ethernet link layer, while they are irrelevant for IB. Vendor drivers are modified to support the new function signature. Signed-off-by:
Matan Barak <matanb@mellanox.com> Signed-off-by:
Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by:
Roland Dreier <roland@purestorage.com>
-
- 21 Jun, 2013 1 commit
-
-
Sean Hefty authored
Allow converting from struct ib_sa_path_rec to the IB defined SA path record wire format. This will be used to report path data from the rdma cm into user space. Signed-off-by:
Sean Hefty <sean.hefty@intel.com> Signed-off-by:
Roland Dreier <roland@purestorage.com>
-
- 28 Feb, 2013 1 commit
-
-
Tejun Heo authored
Convert to the much saner new idr interface. v2: Mike triggered WARN_ON() in idr_preload() because send_mad(), which may be used from non-process context, was calling idr_preload() unconditionally. Preload iff @gfp_mask has __GFP_WAIT. Signed-off-by:
Tejun Heo <tj@kernel.org> Reviewed-by:
Sean Hefty <sean.hefty@intel.com> Reported-by:
"Marciniszyn, Mike" <mike.marciniszyn@intel.com> Cc: Roland Dreier <roland@kernel.org> Cc: Sean Hefty <sean.hefty@intel.com> Cc: Hal Rosenstock <hal.rosenstock@gmail.com> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
- 09 Jul, 2012 1 commit
-
-
Erez Shitrit authored
This query is needed for SRIOV alias GUID support. The query is implemented per the IB Spec definition in section 15.2.5.18 (GuidInfoRecord). Signed-off-by:
Erez Shitrit <erezsh@mellanox.co.il> Signed-off-by:
Jack Morgenstein <jackm@dev.mellanox.co.il> Signed-off-by:
Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by:
Roland Dreier <roland@purestorage.com>
-
- 29 Jan, 2011 1 commit
-
-
Tejun Heo authored
Commit f0626710 ("RDMA: Update workqueue usage") introduced ib_wq and removed the use of flush_scheduled_work(); however, during the merge process one chunk was lost in ib_sa_remove_one(). Fix it. Signed-off-by:
Tejun Heo <tj@kernel.org> Signed-off-by:
Roland Dreier <roland@purestorage.com>
-
- 17 Jan, 2011 1 commit
-
-
Tejun Heo authored
* ib_wq is added, which is used as the common workqueue for infiniband instead of the system workqueue. All system workqueue usages including flush_scheduled_work() callers are converted to use and flush ib_wq. * cancel_delayed_work() + flush_scheduled_work() converted to cancel_delayed_work_sync(). * qib_wq is removed and ib_wq is used instead. This is to prepare for deprecation of flush_scheduled_work(). Signed-off-by:
Tejun Heo <tj@kernel.org> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
- 13 Oct, 2010 2 commits
-
-
Eli Cohen authored
Add support for IBoE device binding and IP --> GID resolution. Path resolving and multicast joining are implemented within cma.c by filling in the responses and running callbacks in the CMA work queue. IP --> GID resolution always yields IPv6 link local addresses; remote GIDs are derived from the destination MAC address of the remote port. Multicast GIDs are always mapped to multicast MACs as is done in IPv6. (IPv4 multicast is enabled by translating IPv4 multicast addresses to IPv6 multicast as described in <http://www.mail-archive.com/ipng@sunroof.eng.sun.com/msg02134.html >.) Some helper functions are added to ib_addr.h. Signed-off-by:
Eli Cohen <eli@mellanox.co.il> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
Eli Cohen authored
Since IBoE is using Ethernet as its link layer, there is no central management entity so there is need for QP0. QP1 is still needed since it handles communications between CM agents. This patch will skip QP0 and create only QP1 for IBoE ports. Signed-off-by:
Eli Cohen <eli@mellanox.co.il> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
- 16 Nov, 2009 1 commit
-
-
Sean Hefty authored
Export rdma_set_ib_paths to user space to allow applications to manually set the IB path used for connections. This allows alternative ways for a user space application or library to obtain path record information, including retrieving path information from cached data, avoiding direct interaction with the IB SA. The IB SA is a single, centralized entity that can limit scaling on large clusters running MPI applications. Future changes to the rdma cm can expand on this framework to support the full range of features allowed by the IB CM, such as separate forward and reverse paths and APM. Signed-off-by:
Sean Hefty <sean.hefty@intel.com> Reviewed-By:
Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
- 06 Sep, 2009 1 commit
-
-
Roland Dreier authored
Rather than just defining static spinlock_t variables and then initializing them later in init functions, simply define them with DEFINE_SPINLOCK() and remove the calls to spin_lock_init(). This cleans up the source a tad and also shrinks the compiled code; eg on x86-64: add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-40 (-40) function old new delta ib_uverbs_init 336 326 -10 ib_mad_init_module 147 137 -10 ib_sa_init 123 103 -20 Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
- 03 Mar, 2009 1 commit
-
-
Jack Morgenstein authored
Our testing uncovered a race condition in ib_sa_event(): spin_lock_irqsave(&port->ah_lock, flags); if (port->sm_ah) kref_put(&port->sm_ah->ref, free_sm_ah); port->sm_ah = NULL; spin_unlock_irqrestore(&port->ah_lock, flags); schedule_work(&sa_dev->port[event->element.port_num - sa_dev->start_port].update_task); If two events occur back-to-back (e.g., client-reregister and LID change), both may pass the spinlock-protected code above before the scheduled work updates the port->sm_ah handle. Then if the scheduled work ends up running twice, the second operation will then find a non-NULL port->sm_ah, and will simply overwrite it in update_sm_ah -- resulting in an AH leak. Signed-off-by:
Jack Morgenstein <jackm@dev.mellanox.co.il> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
- 22 Jul, 2008 1 commit
-
-
Ralph Campbell authored
If update_sm_ah() fails, it leaves the port's sm_ah as NULL. Then if the device or module is removed, ib_sa_remove_one() will dereference a NULL pointer when it calls kref_put(). Fix this by testing if sm_ah is NULL before dropping the reference. Signed-off-by:
Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
- 15 Jul, 2008 2 commits
-
-
Roland Dreier authored
They don't get updated by git and so they're worse than useless. Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
Moni Shoua authored
This patch solves a race that occurs after an event occurs that causes the SA query module to flush its SM address handle (AH). When SM AH becomes invalid and needs an update it is handled by the global workqueue. On the other hand this event is also handled in the IPoIB driver by queuing work in the ipoib_workqueue that does multicast joins. Although queuing is in the right order, it is done to 2 different workqueues and so there is no guarantee that the first to be queued is the first to be executed. This causes a problem because IPoIB may end up sending an request to the old SM, which will take a long time to time out (since the old SM is gone); this leads to a much longer than necessary interruption in multicast traffer. The patch sets the SA query module's SM AH to NULL when the event occurs, and until update_sm_ah() is done, any request that needs sm_ah fails with -EAGAIN return status. For consumers, the patch doesn't make things worse. Before the patch, MADs are sent to the wrong SM so the request gets lost. Consumers can be improved if they examine the return code and respond to EAGAIN properly but even without an improvement the situation is not getting worse. Signed-off-by:
Moni Levy <monil@voltaire.com> Signed-off-by:
Moni Shoua <monis@voltaire.com> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
- 10 Oct, 2007 2 commits
-
-
Sean Hefty authored
The QoS annex defines new fields for path records. Add them to the ib_sa for consumers that want to use them. Signed-off-by:
Sean Hefty <sean.hefty@intel.com> Reviewed-by:
Or Gerlitz <ogerlitz@voltaire.com> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
Ali Ayoub authored
ib_create_send_mad() returns an error code pointer on error, not NULL. Signed-off-by:
Michael S. Tsirkin <mst@dev.mellanox.co.il> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
- 03 Aug, 2007 1 commit
-
-
Roland Dreier authored
Now that ib_find_pkey() ignores the membership bit of P_Keys, there's no need for ib_sa to look for both 0x7fff and 0xffff in a port's P_Key table. Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
- 11 Jul, 2007 1 commit
-
-
Sean Hefty authored
MADs sent to the SA should use the the default P_Key (0x7fff/0xffff). There's no requirement that the default P_Key is stored at index 0 in the local P_Key table, so add code to the sa_query module to look up the index of the default P_Key when creating an address handle for the SA (which is done any time the P_Key table might change), and use this index for all SA queries. Signed-off-by:
Sean Hefty <sean.hefty@intel.com> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
- 09 Jul, 2007 1 commit
-
-
Roland Dreier authored
A few files had 0xa0 characters in comments. Remove them so that the files are clean ASCII text. Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
- 03 May, 2007 1 commit
-
-
Jean Delvare authored
I noticed that many source files include <linux/pci.h> while they do not appear to need it. Here is an attempt to clean it all up. In order to find all possibly affected files, I searched for all files including <linux/pci.h> but without any other occurence of "pci" or "PCI". I removed the include statement from all of these, then I compiled an allmodconfig kernel on both i386 and x86_64 and fixed the false positives manually. My tests covered 66% of the affected files, so there could be false positives remaining. Untested files are: arch/alpha/kernel/err_common.c arch/alpha/kernel/err_ev6.c arch/alpha/kernel/err_ev7.c arch/ia64/sn/kernel/huberror.c arch/ia64/sn/kernel/xpnet.c arch/m68knommu/kernel/dma.c arch/mips/lib/iomap.c arch/powerpc/platforms/pseries/ras.c arch/ppc/8260_io/enet.c arch/ppc/8260_io/fcc_enet.c arch/ppc/8xx_io/enet.c arch/ppc/syslib/ppc4xx_sgdma.c arch/sh64/mach-cayman/iomap.c arch/xtensa/kernel/xtensa_ksyms.c arch/xtensa/platform-iss/setup.c drivers/i2c/busses/i2c-at91.c drivers/i2c/busses/i2c-mpc.c drivers/media/video/saa711x.c drivers/misc/hdpuftrs/hdpu_cpustate.c drivers/misc/hdpuftrs/hdpu_nexus.c drivers/net/au1000_eth.c drivers/net/fec_8xx/fec_main.c drivers/net/fec_8xx/fec_mii.c drivers/net/fs_enet/fs_enet-main.c drivers/net/fs_enet/mac-fcc.c drivers/net/fs_enet/mac-fec.c drivers/net/fs_enet/mac-scc.c drivers/net/fs_enet/mii-bitbang.c drivers/net/fs_enet/mii-fec.c drivers/net/ibm_emac/ibm_emac_core.c drivers/net/lasi_82596.c drivers/parisc/hppb.c drivers/sbus/sbus.c drivers/video/g364fb.c drivers/video/platinumfb.c drivers/video/stifb.c drivers/video/valkyriefb.c include/asm-arm/arch-ixp4xx/dma.h sound/oss/au1550_ac97.c I would welcome test reports for these files. I am fine with removing the untested files from the patch if the general opinion is that these changes aren't safe. The tested part would still be nice to have. Note that this patch depends on another header fixup patch I submitted to LKML yesterday: [PATCH] scatterlist.h needs types.h http://lkml.org/lkml/2007/3/01/141 Signed-off-by:
Jean Delvare <khali@linux-fr.org> Cc: Badari Pulavarty <pbadari@us.ibm.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
- 24 Apr, 2007 1 commit
-
-
Sean Hefty authored
src_path_bits needs to mask off the base LID value. Signed-off-by:
Sean Hefty <sean.hefty@intel.com>
-
- 16 Feb, 2007 2 commits
-
-
Roland Dreier authored
The static rate from the path record should be put into the address vector -- a long time ago the rate in the address attributes needed to be a relative rate, which required more munging, but now that the conversion from absolute to relative is done in the low-level driver, it's easy for ib_init_ah_from_path() to put the absolute rate in. Cc: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Cc: Sean Hefty <sean.hefty@intel.com> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
Sean Hefty authored
The IB SA tracks multicast join/leave requests on a per port basis and does not do any reference counting: if two users of the same port join the same group, and one leaves that group, then the SA will remove the port from the group even though there is one user who wants to stay a member left. Therefore, in order to support multiple users of the same multicast group from the same port, we need to perform reference counting locally. To do this, add an multicast submodule to ib_sa to perform reference counting of multicast join/leave operations. Modify ib_ipoib (the only in-kernel user of multicast) to use the new interface. Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
- 22 Nov, 2006 1 commit
-
-
David Howells authored
Fix up for make allyesconfig. Signed-Off-By:
David Howells <dhowells@redhat.com>
-
- 22 Sep, 2006 3 commits
-
-
Michael S. Tsirkin authored
Require users to register with SA module, to prevent the sa_query module text from going away while an SA query callback is still running. Update all in-tree users for the new interface. Signed-off-by:
Michael S. Tsirkin <mst@mellanox.co.il> Signed-off-by:
Sean Hefty <sean.hefty@intel.com> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
Tom Tucker authored
Modifications to the existing rdma header files, core files, drivers, and ulp files to support iWARP, including: - Hook iWARP CM into the build system and use it in rdma_cm. - Convert enum ib_node_type to enum rdma_node_type, which includes the possibility of RDMA_NODE_RNIC, and update everything for this. Signed-off-by:
Tom Tucker <tom@opengridcomputing.com> Signed-off-by:
Steve Wise <swise@opengridcomputing.com> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
Roland Dreier authored
Remove some trailing whitespace that has snuck in despite the best efforts of whitespace=error-all. Also fix a few other whitespace bogosities. Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
- 16 Aug, 2006 1 commit
-
-
Jack Morgenstein authored
After commit 12bbb2b7 , when SM LID change or LID change MAD also has a client reregistration bit set, only CLIENT_REREGISTER event is generated. As a result, the sa_query module and the cache module don't update the port information, and ULPs (e.g. IPoIB) stop working. This is the regression we observe as compared to 2.6.17. Rather than generate multiple events (which would have negative performance impact), let us simply let cache and SA query respond to reregister event in the same way as to LID and SM change events. Signed-off-by:
Jack Morgenstein <jackm@mellanox.co.il> Signed-off-by:
Michael S. Tsirkin <mst@mellanox.co.il> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
- 15 Jul, 2006 1 commit
-
-
Michael S. Tsirkin authored
Avoid bogus out of memory errors: fix sa_query to actually pass gfp_mask supplied by the user to idr_pre_get. Signed-off-by:
Michael S. Tsirkin <mst@mellanox.co.il> Acked-by:
"Sean Hefty" <mshefty@ichips.intel.com> Acked-by:
"Roland Dreier" <rdreier@cisco.com> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
- 18 Jun, 2006 2 commits
-
-
Sean Hefty authored
Use new ib_init_ah_from_wc() and ib_init_ah_from_path() helper functions to clean up the IB CM. Signed-off-by:
Sean Hefty <sean.hefty@intel.com> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
Sean Hefty authored
Add a call to initialize address handle attributes given a path record. This is used by the CM, and would be useful for users of UD QPs. Signed-off-by:
Sean Hefty <sean.hefty@intel.com> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
- 17 Jan, 2006 1 commit
-
-
Michael S. Tsirkin authored
sa_query schedules work on IB asynchronous events. After unregistering the async event handler, make sure that this work has completed before releasing the IB device (and possibly allowing the sa_query module text to go away). Signed-off-by:
Michael S. Tsirkin <mst@mellanox.co.il> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
- 31 Oct, 2005 1 commit
-
-
Tim Schmielau authored
I recently picked up my older work to remove unnecessary #includes of sched.h, starting from a patch by Dave Jones to not include sched.h from module.h. This reduces the number of indirect includes of sched.h by ~300. Another ~400 pointless direct includes can be removed after this disentangling (patch to follow later). However, quite a few indirect includes need to be fixed up for this. In order to feed the patches through -mm with as little disturbance as possible, I've split out the fixes I accumulated up to now (complete for i386 and x86_64, more archs to follow later) and post them before the real patch. This way this large part of the patch is kept simple with only adding #includes, and all hunks are independent of each other. So if any hunk rejects or gets in the way of other patches, just drop it. My scripts will pick it up again in the next round. Signed-off-by:
Tim Schmielau <tim@physik3.uni-rostock.de> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
- 25 Oct, 2005 1 commit
-
-
Sean Hefty authored
The MAD layer was violating the DMA API by touching data buffers used for sends after the DMA mapping was done. This causes problems on non-cache-coherent architectures, because the device doing DMA won't see updates to the payload buffers that exist only in the CPU cache. Fix this by having all MAD consumers use ib_create_send_mad() to allocate their send buffers, and moving the DMA mapping into the MAD layer so it can be done just before calling send (and after any modifications of the send buffer by the MAD layer). Tested on a non-cache-coherent PowerPC 440SPe system. Signed-off-by:
Sean Hefty <sean.hefty@intel.com> Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-
- 24 Oct, 2005 1 commit
-
-
Roland Dreier authored
Add idr_destroy() calls to the module_exit() functions of the four IB driver modules that use idrs, so we don't leak idr_layer_cache objects when these modules are unloaded. Signed-off-by:
Roland Dreier <rolandd@cisco.com>
-