Re: [RFC] split struct ib_send_wr

2015-08-13 Thread Doug Ledford
On 08/13/2015 01:54 AM, Christoph Hellwig wrote: On Wed, Aug 12, 2015 at 07:24:44PM -0700, Chuck Lever wrote: That makes sense, but you already Acked the change that breaks Lustre, and it's going in through the NFS tree. Are you changing that to a NAK? No. Lustre fits in my languishing in the

Re: [PATCH V6 6/9] isert: Rename IO functions to more descriptive names

2015-08-13 Thread Sagi Grimberg
Nic is silent... Sagi, do you have an ETA on when you can have the recode ready for detailed review and test? If we can't make linux-4.3, can we be early in staging it for linux-4.4? Hi Steve, I have something, but its not remotely close to be submission ready. This ended up being a

[PATCH] IB/hfi1: Remove inline from trace functions

2015-08-13 Thread Mike Marciniszyn
From: Dennis Dalessandro dennis.dalessan...@intel.com inline in trace functions causes the following build error when CONFIG_OPTIMIZE_INLINING is not defined in the kernel config: error: function can never be inlined because it uses variable argument lists Reported by 0-day build:

Re: [RFC] split struct ib_send_wr

2015-08-13 Thread Jason Gunthorpe
On Thu, Aug 13, 2015 at 09:04:39AM -0700, Christoph Hellwig wrote: On Thu, Aug 13, 2015 at 09:07:14AM -0400, Doug Ledford wrote: Doug: was your mail a request to fix up the two de-staged drivers? I'm happy to do that if you're fine with the patch in general. amso1100 should be trivial

Re: [PATCH] IB/hfi1: Remove inline from trace functions

2015-08-13 Thread Jason Gunthorpe
On Thu, Aug 13, 2015 at 10:06:14AM -0400, Mike Marciniszyn wrote: From: Dennis Dalessandro dennis.dalessan...@intel.com inline in trace functions causes the following build error when CONFIG_OPTIMIZE_INLINING is not defined in the kernel config: error: function can never be inlined because

Re: [RFC] split struct ib_send_wr

2015-08-13 Thread Jason Gunthorpe
On Thu, Aug 13, 2015 at 10:53:54AM -0700, Christoph Hellwig wrote: http://git.infradead.org/users/hch/rdma.git/commitdiff/5d7e6fa563dae32d4b6f63e29e3795717a545f11 For the core bits: Reviewed-by: Jason Gunthorpe jguntho...@obsidianresearch.com Jason -- To unsubscribe from this list: send the

[ANNOUNCE] dapl-2.1.6-1 release

2015-08-13 Thread Davis, Arlin R
New release for uDAPL (2.1.6) is available at http://downloads.openfabrics.org/dapl/ Vlad, please pull into OFED 3.18-1 md5sum: dce3ef7c943807d35bcb26dae72b1d88 dapl-2.1.6.tar.gz For v2.1 package install RPM packages as follow: dapl-2.1.6-1 dapl-utils-2.1.6-1

Re: [RFC] split struct ib_send_wr

2015-08-13 Thread Chuck Lever
On Aug 13, 2015, at 9:04 AM, Christoph Hellwig h...@infradead.org wrote: On Thu, Aug 13, 2015 at 09:07:14AM -0400, Doug Ledford wrote: Doug: was your mail a request to fix up the two de-staged drivers? I'm happy to do that if you're fine with the patch in general. amso1100 should be

Re: [RFC] split struct ib_send_wr

2015-08-13 Thread Christoph Hellwig
On Thu, Aug 13, 2015 at 11:22:34AM -0600, Jason Gunthorpe wrote: The uverbs change needs to drop/move the original kmalloc: next = kmalloc(ALIGN(sizeof *next, sizeof (struct ib_sge)) + user_wr-num_sge * sizeof (struct ib_sge),

[RFC PATCH 5/8 v2] IB/odp/hmm: add core infiniband structure and helper for ODP with HMM v3.

2015-08-13 Thread Jérôme Glisse
This add new core infiniband structure and helper to implement ODP (on demand paging) on top of HMM. We need to retain the tree of ib_umem as some hardware associate unique identifiant with each umem (or mr) and only allow hardware page table to be updated using this unique id. Changed since v1:

[RFC PATCH 4/8 v2] IB/odp/hmm: prepare for HMM code path.

2015-08-13 Thread Jérôme Glisse
This is a preparatory patch for HMM implementation of ODP (on demand paging). It shuffle codes around that will be share between current ODP implementation and HMM code path. It also convert many #ifdef CONFIG to #if IS_ENABLED(). Signed-off-by: Jérôme Glisse jgli...@redhat.com ---

[RFC PATCH 6/8 v2] IB/mlx5/hmm: add mlx5 HMM device initialization and callback v3.

2015-08-13 Thread Jérôme Glisse
This add the core HMM callback for mlx5 device driver and initialize the HMM device for the mlx5 infiniband device driver. Changed since v1: - Adapt to new hmm_mirror lifetime rules. - HMM_ISDIRTY no longer exist. Changed since v2: - Adapt to HMM page table changes. Signed-off-by: Jérôme

Re: [GIT PULL] pull request: linux-firmware: Add Intel OPA hfi1 firmware

2015-08-13 Thread ira.weiny
On Tue, Aug 11, 2015 at 05:35:53PM -0600, Jason Gunthorpe wrote: On Tue, Aug 11, 2015 at 10:47:03PM +, Vogel, Steve wrote: The license terms allow anyone to distribute (but not sell) the firmware but only for use on Intel products. Redistribution alone may be enough to be included in

RE: [PATCH v2] IB/hfi1: Remove inline from trace functions

2015-08-13 Thread Marciniszyn, Mike
Subject: [PATCH v2] IB/hfi1: Remove inline from trace functions v2 adjusts some of the comment text to clarify adding new traces.

[RFC PATCH 0/8 v2] Implement ODP using HMM v2

2015-08-13 Thread Jérôme Glisse
Posting just for comment, still waiting on HMM to be accepted before this patchset can be considered for inclusion. This patchset implement the on demand paging feature using HMM. It depends on the HMM patchset v10 (previous post (1)). Long term plan is to replace ODP with HMM allowing to share

[RFC PATCH 7/8 v2] IB/mlx5/hmm: add page fault support for ODP on HMM v2.

2015-08-13 Thread Jérôme Glisse
This patch add HMM specific support for hardware page faulting of user memory region. Changed since v1: - Adapt to HMM page table changes. - Turn some sanity test to BUG_ON(). Signed-off-by: Jérôme Glisse jgli...@redhat.com --- drivers/infiniband/hw/mlx5/odp.c | 144

[RFC PATCH 8/8 v2] IB/mlx5/hmm: enable ODP using HMM v2.

2015-08-13 Thread Jérôme Glisse
All pieces are in place for ODP (on demand paging) to work using HMM. Add kernel option and final code to enable it. Changed since v1: - Added kernel option in this last patch of the serie. Signed-off-by: Jérôme Glisse jgli...@redhat.com --- drivers/infiniband/Kconfig | 10

RE: [PATCH] IB/hfi1: Remove inline from trace functions

2015-08-13 Thread Marciniszyn, Mike
From: Dennis Dalessandro dennis.dalessan...@intel.com inline in trace functions causes the following build error when CONFIG_OPTIMIZE_INLINING is not defined in the kernel config: error: function can never be inlined because it uses variable argument lists There are all manner of

[PATCH] RDMA/cma: fix IPv6 address resolution

2015-08-13 Thread Spencer Baugh
Resolving a link-local IPv6 address with an unspecified source address was broken by commit 5462eddd7a, which prevented the IPv6 stack from learning the scope id of the link-local IPv6 address, causing random failures as the IP stack chose a random link to resolve the address on. This commit

Re: [RFC PATCH 4/8 v2] IB/odp/hmm: prepare for HMM code path.

2015-08-13 Thread Jerome Glisse
On Thu, Aug 13, 2015 at 02:13:35PM -0600, Jason Gunthorpe wrote: On Thu, Aug 13, 2015 at 03:20:49PM -0400, Jérôme Glisse wrote: +#if IS_ENABLED(CONFIG_INFINIBAND_ON_DEMAND_PAGING_HMM) +#else /* CONFIG_INFINIBAND_ON_DEMAND_PAGING_HMM */ Yuk, what is wrong with #if !IS_ENABLED(...)

[RFC PATCH 3/8 v2] IB/odp: export rbt_ib_umem_for_each_in_range()

2015-08-13 Thread Jérôme Glisse
The mlx5 driver will need this function for its driver specific bit of ODP (on demand paging) on HMM (Heterogeneous Memory Management). Signed-off-by: Jérôme Glisse jgli...@redhat.com --- drivers/infiniband/core/umem_rbtree.c | 1 + 1 file changed, 1 insertion(+) diff --git

[RFC PATCH 1/8 v2] IB/mlx5: add a new parameter to __mlx_ib_populated_pas for ODP with HMM.

2015-08-13 Thread Jérôme Glisse
When using HMM for ODP it will be useful to pass the current mirror page table iterator for __mlx_ib_populated_pas() function benefit. Add void parameter for this. Signed-off-by: Jérôme Glisse jgli...@redhat.com --- drivers/infiniband/hw/mlx5/mem.c | 8 +---

[RFC PATCH 2/8 v2] IB/mlx5: add a new parameter to mlx5_ib_update_mtt() for ODP with HMM.

2015-08-13 Thread Jérôme Glisse
When using HMM for ODP it will be useful to pass the current mirror page table iterator for mlx5_ib_update_mtt() function benefit. Add void parameter for this. Signed-off-by: Jérôme Glisse jgli...@redhat.com --- drivers/infiniband/hw/mlx5/mlx5_ib.h | 2 +- drivers/infiniband/hw/mlx5/mr.c |

[PATCH v2] IB/hfi1: Remove inline from trace functions

2015-08-13 Thread Mike Marciniszyn
From: Dennis Dalessandro dennis.dalessan...@intel.com Inline in trace functions causes the following build error when CONFIG_OPTIMIZE_INLINING is not defined in the kernel config: error: function can never be inlined because it uses variable argument lists Reported by 0-day build:

Re: [RFC PATCH 4/8 v2] IB/odp/hmm: prepare for HMM code path.

2015-08-13 Thread Jason Gunthorpe
On Thu, Aug 13, 2015 at 03:20:49PM -0400, Jérôme Glisse wrote: +#if IS_ENABLED(CONFIG_INFINIBAND_ON_DEMAND_PAGING_HMM) +#else /* CONFIG_INFINIBAND_ON_DEMAND_PAGING_HMM */ Yuk, what is wrong with #if !IS_ENABLED(...) ? -#ifdef CONFIG_INFINIBAND_ON_DEMAND_PAGING +#if

Re: [PATCH v2 12/12] rds/ib: Remove ib_get_dma_mr calls

2015-08-13 Thread santosh shilimkar
On 7/30/2015 4:22 PM, Jason Gunthorpe wrote: The pd now has a local_dma_lkey member which completely replaces ib_get_dma_mr, use it instead. Signed-off-by: Jason Gunthorpe jguntho...@obsidianresearch.com --- net/rds/ib.c | 8 net/rds/ib.h | 2 -- net/rds/ib_cm.c | 4

[PATCH for-next 1/9] IB/core: Add gid_type to gid attribute

2015-08-13 Thread Matan Barak
In order to support multiple GID types, we need to store the gid_type with each GID. This is also aligned with the RoCE v2 annex RoCEv2 PORT GID table entries shall have a GID type attribute that denotes the L3 Address type. The currently supported GID is IB_GID_TYPE_IB which is also RoCE v1 GID

[PATCH for-next 3/9] IB/core: Add gid attributes to sysfs

2015-08-13 Thread Matan Barak
This patch set adds attributes of net device and gid type to each GID in the GID table. Users that use verbs directly need to specify the GID index. Since the same GID could have different types or associated net devices, users should have the ability to query the associated GID attributes. Adding

[PATCH for-next 4/9] IB/core: Add ROCE_UDP_ENCAP (RoCE V2) type

2015-08-13 Thread Matan Barak
Adding RoCE v2 GID type and port type. Vendors which support this type will get their GID table populated with RoCE v2 GIDs automatically. Signed-off-by: Matan Barak mat...@mellanox.com --- drivers/infiniband/core/cache.c | 1 + drivers/infiniband/core/roce_gid_mgmt.c | 3 ++-

[PATCH for-next 9/9] IB/cma: Join and leave multicast groups with IGMP

2015-08-13 Thread Matan Barak
From: Moni Shoua mo...@mellanox.com Since RoCEv2 is a protocol over IP header it is required to send IGMP join and leave requests to the network when joining and leaving multicast groups. Signed-off-by: Moni Shoua mo...@mellanox.com --- drivers/infiniband/core/cma.c | 96

[PATCH for-next 8/9] IB/core: Initialize UD header structure with IP and UDP headers

2015-08-13 Thread Matan Barak
From: Moni Shoua mo...@mellanox.com ib_ud_header_init() is used to format InfiniBand headers in a buffer up to (but not with) BTH. For RoCE UDP ENCAP it is required that this function would be able to build also IP and UDP headers. Signed-off-by: Moni Shoua mo...@mellanox.com Signed-off-by:

[PATCH for-next 0/9] Add RoCE v2 support

2015-08-13 Thread Matan Barak
Hi Doug, This series adds the support for RoCE v2. In order to support RoCE v2, we add gid_type attribute to every GID. When the RoCE GID management populates the GID table, it duplicates each GID with all supported types. This gives the user the ability to communicate over each supported type.

Re: [RFC] split struct ib_send_wr

2015-08-13 Thread Christoph Hellwig
On Thu, Aug 13, 2015 at 09:07:14AM -0400, Doug Ledford wrote: Doug: was your mail a request to fix up the two de-staged drivers? I'm happy to do that if you're fine with the patch in general. amso1100 should be trivial anyway, while ipath is a mess, just like the new intel driver with

[PATCH for-next 7/9] IB/cma: Add configfs for rdma_cm

2015-08-13 Thread Matan Barak
Users would like to control the behaviour of rdma_cm. For example, old applications which don't set the required RoCE gid type could be executed on RoCE V2 network types. In order to support this configuration, we implement a configfs for rdma_cm. In order to use the configfs, one needs to mount

[PATCH for-next 6/9] IB/rdma_cm: Add wrapper for cma reference count

2015-08-13 Thread Matan Barak
Currently, cma users can't increase or decrease the cma reference count. This is necassary when setting cma attributes (like the default GID type) in order to avoid use-after-free errors. Adding cma_ref_dev and cma_deref_dev APIs. Signed-off-by: Matan Barak mat...@mellanox.com ---

[PATCH for-next 2/9] IB/cm: Use the source GID index type

2015-08-13 Thread Matan Barak
Previosuly, cm and cma modules supported only IB and RoCE v1 GID type. In order to support multiple GID types, the gid_type is passed to cm_init_av_by_path and stored in the path record. The rdma cm client would use a default GID type that will be saved in rdma_id_private. Signed-off-by: Matan

[PATCH for-next 5/9] IB/core: Add rdma_network_type to wc

2015-08-13 Thread Matan Barak
From: Somnath Kotur somnath.ko...@avagotech.com Providers should tell IB core the wc's network type. This is used in order to search for the proper GID in the GID table. When using HCAs that can't provide this info, IB core tries to deep examine the packet and extract the GID type by itself. We

[PATCH for-next V8 3/6] IB/uverbs: Explicitly pass ib_dev to uverbs commands

2015-08-13 Thread Yishai Hadas
Done in preparation for deploying RCU for the device removal flow. Allows isolating the RCU handling to the uverb_main layer and keeping the uverbs_cmd code as is. Signed-off-by: Yishai Hadas yish...@mellanox.com Signed-off-by: Shachar Raindel rain...@mellanox.com Reviewed-by: Jason Gunthorpe

[PATCH for-next V8 6/6] IB/ucma: HW Device hot-removal support

2015-08-13 Thread Yishai Hadas
Currently, IB/cma remove_one flow blocks until all user descriptor managed by IB/ucma are released. This prevents hot-removal of IB devices. This patch allows IB/cma to remove devices regardless of user space activity. Upon getting the RDMA_CM_EVENT_DEVICE_REMOVAL event we close all the underlying

[PATCH for-next V8 1/6] IB/uverbs: Fix reference counting usage of event files

2015-08-13 Thread Yishai Hadas
Fix the reference counting usage to be handled in the event file creation/destruction function, instead of being done by the caller. This is done for both async/non-async event files. Based on Jason Gunthorpe report at https://www.mail-archive.com/ linux-rdma@vger.kernel.org/msg24680.html: The

[PATCH for-next V8 2/6] IB/uverbs: Fix race between ib_uverbs_open and remove_one

2015-08-13 Thread Yishai Hadas
Fixes: 2a72f212263701b927559f6850446421d5906c41 (IB/uverbs: Remove dev_table) Before this commit there was a device look-up table that was protected by a spin_lock used by ib_uverbs_open and by ib_uverbs_remove_one. When it was dropped and container_of was used instead, it enabled the race with

[PATCH for-next V8 4/6] IB/uverbs: Enable device removal when there are active user space applications

2015-08-13 Thread Yishai Hadas
Enables the uverbs_remove_one to succeed despite the fact that there are running IB applications working with the given ib device. This functionality enables a HW device to be unbind/reset despite the fact that there are running user space applications using it. It exposes a new IB kernel API

[PATCH for-next V8 5/6] IB/mlx4_ib: Disassociate support

2015-08-13 Thread Yishai Hadas
Implements the IB core disassociate_ucontext API. The driver detaches the HW resources for a given user context to prevent a dependency between application termination and device disconnecting. This is done by managing the VMAs that were mapped to the HW bars such as door bell and blueflame. When

Re: [RFC] split struct ib_send_wr

2015-08-13 Thread Christoph Hellwig
On Wed, Aug 12, 2015 at 08:24:49PM +0300, Sagi Grimberg wrote: Just a nit that I've noticed, in mlx4 set_fmr_seg params are not aligned to the parenthesis (maybe in other locations too but I haven't noticed such...) This is just using a normal two tab indent for continued function parameters..