On Mon, Dec 07, 2015 at 03:43:06PM -0500, Dennis Dalessandro wrote:
> +
> +#define BAD_DMA_ADDRESS ((u64)0)
What is the advantage in using directly u64 values instead of
pointers? You will get NULL and functions which return pointers
without need of casting.
...
> +static u64
On Mon, Dec 07, 2015 at 03:43:02PM -0500, Dennis Dalessandro wrote:
> +#include
> +#include
> +#include "vt.h"
> +
> +#define RDMAVT_DRIVER_VERSION "0.1"
Do we really need driver version?
> +
> +MODULE_LICENSE("Dual BSD/GPL");
> +MODULE_DESCRIPTION("RDMA Verbs Transport Library");
>
On Mon, Dec 07, 2015 at 03:43:10PM -0500, Dennis Dalessandro wrote:
> +
> +/*
> + * Things that are driver specific, module parameters in hfi1 and qib
> + */
> +struct rvt_driver_params {
> + int max_pds;
Can it be negative value?
> +};
--
To unsubscribe from this list: send the line
On Mon, Dec 7, 2015 at 8:48 PM, Jason Gunthorpe
wrote:
> On Mon, Dec 07, 2015 at 08:34:43PM +0200, Moni Shoua wrote:
>> Well, just tell me how you want to discover gid_index when you poll
>> the WC out of the CQ.
>
> Hey, I'm not desiging this rocev2 stuff, this
On Tue, Dec 08, 2015 at 08:28:17AM +0200, Leon Romanovsky wrote:
> On Mon, Dec 07, 2015 at 03:43:10PM -0500, Dennis Dalessandro wrote:
> > +
> > +/*
> > + * Things that are driver specific, module parameters in hfi1 and qib
> > + */
> > +struct rvt_driver_params {
> > + int max_pds;
> Can it be
On Mon, Dec 07, 2015 at 02:39:04PM -0700, Jason Gunthorpe wrote:
> On Mon, Dec 07, 2015 at 09:26:11PM +, Hefty, Sean wrote:
> > > +static int rvt_query_device(struct ib_device *ibdev,
> > > + struct ib_device_attr *props,
> > > + struct ib_udata *uhw)
>
Hey Chuck/NFS developers,
We're hitting this warning in ext4 on the linux-4.3 nfs server running over
RDMA/cxgb4. We're still gathering data, like if it
happens with NFS/TCP. But has anyone seen this warning on 4.3? Is it likely
to indicate some bug in the xprtrdma transport or
above it in
Simplify the code with list_for_each_entry_safe().
Signed-off-by: Geliang Tang
---
drivers/infiniband/hw/mlx4/mcg.c | 7 ++-
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/drivers/infiniband/hw/mlx4/mcg.c b/drivers/infiniband/hw/mlx4/mcg.c
index
On 12/03/2015 03:47 PM, Matan Barak wrote:
> +static int addr_resolve_neigh(struct dst_entry *dst,
> + const struct sockaddr *dst_in,
> + struct rdma_dev_addr *addr)
> +{
> + if (dst->dev->flags & IFF_LOOPBACK) {
> + int ret;
> +
Hi Steve-
> On Dec 7, 2015, at 10:38 AM, Steve Wise wrote:
>
> Hey Chuck/NFS developers,
>
> We're hitting this warning in ext4 on the linux-4.3 nfs server running over
> RDMA/cxgb4. We're still gathering data, like if it
> happens with NFS/TCP. But has anyone
On 12/04/2015 01:09 AM, Jeff Squyres wrote:
> The default value of 8 is too small to read
> /sys/class/infiniband/usnic_x/node_type, which contains "6: usNIC
> UDP". Per a7a73a8c1b39362f1701256bc772d82847832f9c, the too-small
> buffer causes a stderr warning to be emitted from ibv_devinfo when
>
On Mon, Dec 07, 2015 at 08:37:41AM +0200, Moni Shoua wrote:
> On Mon, Dec 7, 2015 at 8:34 AM, Jason Gunthorpe
> wrote:
> > On Mon, Dec 07, 2015 at 08:15:40AM +0200, Moni Shoua wrote:
> >
> >> What you have though is the sgid taken from the GRH that is scattered
>
On 12/05/2015 03:17 AM, Christoph Hellwig wrote:
Hi Bart,
On Fri, Dec 04, 2015 at 03:08:15PM -0800, Bart Van Assche wrote:
While preparing this patch series I noticed that none of the SCSI RDMA
initiator drivers syncs RDMA buffers before performing RDMA. Does
anyone know why something like the
On 12/07/2015 08:57 AM, Haggai Eran wrote:
> On Friday, December 4, 2015 8:02 PM, Nicholas Krause
> wrote:
>> To: dledf...@redhat.com
>> Cc: sean.he...@intel.com; hal.rosenst...@gmail.com; Haggai Eran;
>> jguntho...@obsidianresearch.com; Matan Barak;
On Wed, Dec 02, 2015 at 03:56:27PM -0500, ira.we...@intel.com wrote:
> - for (i = tx->idx; i >= 0; i--) {
> - if (tx->iovecs[i].flags & TXREQ_FLAGS_IOVEC_LAST_PKT)
> - unpin_vector_pages(tx->iovecs[i].vec);
> + /*
> + * If we
On 12/03/2015 06:02 PM, Matan Barak wrote:
> Always inline isn't supported by every compiler. Adding it to
> configure.ac in order to support it only when possible.
> Inline other poll_one data path functions in order to eliminate
> "ifs".
>
> Signed-off-by: Matan Barak
>
On 12/03/2015 05:44 PM, Matan Barak wrote:
> Extending core and vendor verb commands require us to check that the
> unknown part of the user's given command is all zeros.
> Adding ib_is_udata_cleared in order to do so.
>
Why not copy the data into kernel space and run memchr_inv() on it?
--
To
On 12/01/2015 10:16 AM, Bart Van Assche wrote:
This patch series contains six bug fixes either for the SRP initiator
itself or for IB core functionality used by the SRP initiator. The order
of these patches matches the order in which the corresponding bugs have
been introduced. The patches in
Profiling has shown the the atomic is a performance issue
for the pio hot path.
If multiple cpus allocated an sc's buffer, the cacheline
containing the atomic will bounce from L0 to L0.
Convert the atomic to a percpu variable.
Reviewed-by: Jubin John
Signed-off-by: Mike
Turns out that when the maximum payload size of NFS READ and WRITE
was increased to 1MB, the size of struct svc_rdma_op_ctxt
increased to 6KB (x86_64). That makes allocating one of these from
a kmem_cache more likely to fail.
Allocating one of these has to be fast in general, and none of the
To support the NFSv4.1 backchannel on RDMA connections, add a
mechanism for sending a backwards-direction RPC/RDMA call on a
connection established by a client.
Signed-off-by: Chuck Lever
---
include/linux/sunrpc/svc_rdma.h |2 +
Add datastructure for and allocation/deallocation of protection domains for
RDMAVT.
Reviewed-by: Ira Weiny
Reviewed-by: Mike Marciniszyn
Signed-off-by: Dennis Dalessandro
---
drivers/infiniband/sw/rdmavt/Makefile |
To support the NFSv4.1 backchannel on RDMA connections, add a
capability for receiving an RPC/RDMA reply on a connection
established by a client.
Signed-off-by: Chuck Lever
---
include/linux/sunrpc/svc_rdma.h|5 ++
net/sunrpc/xprtrdma/Makefile
This patch introduces the basics for a new module called rdma_vt. This new
driver is a software implementation of the InfiniBand verbs and aims to
replace the multiple implementations that exist and duplicate each others'
code.
While the call to actually register the device with the IB core
To support the server-side of an NFSv4.1 backchannel on RDMA
connections, add a transport class that enables backward
direction messages on an existing forward channel connection.
Signed-off-by: Chuck Lever
---
include/linux/sunrpc/xprt.h|1
This patch adds dma functions to rdmavt. The source is hfi1's version of
dma.c which will be removed by a subsequent hfi1 patch.
Reviewed-by: Ira Weiny
Reviewed-by: Mike Marciniszyn
Signed-off-by: Dennis Dalessandro
Instead of trying to handle each parameter separately, add ib_device_attr
to rvt_driver_params. This means drivers will fill this in and pass to the
rvt registration function.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by:
Add a macro to cut down on writing the same lines over and over again for
what will be a large number of functions that will be supported.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
The following series implements rdmavt. This is the rdma verbs transport
software library which will help to solve the problem of code duplication
between hardware drivers when it comes to a verbs implementation.
Rdmavt is basically just another verbs provider and lives in the Infiniband tree
in
Extra resources for handling backchannel requests have to be
pre-allocated when a transport instance is created. Set a limit.
Signed-off-by: Chuck Lever
---
include/linux/sunrpc/svc_rdma.h |2 ++
net/sunrpc/xprtrdma/svc_rdma_transport.c | 14 +-
This adds the post sned and recv function stubs.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
---
drivers/infiniband/sw/rdmavt/qp.c | 62
Add the stubs to allocate and deallocate user contexts. This will be
handled completely by rvt.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
---
Adds the function stubs for allocating, and registering memory regions, as
well as deregistering them.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
---
Follow hfi1's example for printing information about the driver and
incorporate into rdmavt. This requires two new functions to be
provided by the driver, one to get_card_name and one to get_pci_dev.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
The handler for query gid operates along the same lines as the query pkey
handler. The driver will take care to keep the guid table updated.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
Adds the stubs which will handle the query and modify device functions. At
this time the only intention is to support changing the node desc and the
guid via these calls.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis
Adds the stubs for create, destroy, modify, and query of the
address handle.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
---
drivers/infiniband/sw/rdmavt/Makefile |3 -
The pkey table will reside in the rvt structure but it will be modified
only when the driver requests then rvt will simply read the value to return
in the query.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis
Adds the stub for the mmap verbs call.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
---
drivers/infiniband/sw/rdmavt/Makefile |2 +
drivers/infiniband/sw/rdmavt/mmap.c
Adds the stubs for create, modify, query, and destory for shared
request queues.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
---
drivers/infiniband/sw/rdmavt/Makefile |
This patch adds the query and modify port stubs. The query will mostly
entail the driver returning everything in the ib_port_attr which will get
handed back to the verbs layer. The modify will need some API helpers in
the driver. The send_trap and post_mad_send are still issues to address.
Adds the stubs for create, modify, destroy and query functions for queue
pairs.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
---
drivers/infiniband/sw/rdmavt/Makefile |
Adds the function stubs for attach and detach multicast.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
---
drivers/infiniband/sw/rdmavt/Makefile |2 +
This adds the stub for process mad. More study is needed to determine the
final MAD interaction between the driver and rvt.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
---
Create stubs for completion queue creation, polling,
resizing, calling for notification, and destroying.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
---
Add queue pair data structure as well as supporting structures to rdmavt.
Reviewed-by: Ira Weiny
Reviewed-by: Mike Marciniszyn
Signed-off-by: Dennis Dalessandro
---
drivers/infiniband/sw/rdmavt/qp.h |5 -
This patch adds the MR datastructures based on hfi1 into rvt. For now the
data structures are defined in include/rdma/rdma_vt.h but once all MR
functionality has been moved from the drivers into rvt these should move to
rdmavt/mr.h
Reviewed-by: Ira Weiny
Reviewed-by: Dean
Converge the ibport data structures of qib and hfi1 into a common ib
port structure. Also provides a place to keep track of these ports
in case rdmavt needs it. Along with this goes an attach and detach
function for drivers to use to notify rdmavt of the ports.
Reviewed-by: Ira Weiny
This adds the get port immutable verbs call.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
---
drivers/infiniband/sw/rdmavt/vt.c |7 +++
1 files changed, 7
Drivers are going to need to provide multiple functions for rdmavt to
call in to. We already have one, so go ahead and push this into a
data structure designated for driver supplied functions.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
On Mon, Dec 07, 2015 at 11:04:43PM +0800, Geliang Tang wrote:
> Simplify the code with list_for_each_entry_safe().
>
> Signed-off-by: Geliang Tang
> ---
> drivers/infiniband/hw/mlx4/mcg.c | 7 ++-
> 1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git
Patch moves the srq data structure into rdmavt in preparation for
removal from qib and hfi1 which will follow in subsequent patches.
Reviewed-by: Ira Weiny
Reviewed-by: Harish Chegondi
Signed-off-by: Dennis Dalessandro
From: Kamal Heib
Original patch is from Kamal Heib . It has
been split into separate patches.
This patch adds RVT_PERMISSIVE_LID and RVT_MULTICAST_LID_BASE
to rdmavt.
Reviewed-by: Ira Weiny
Signed-off-by: Kamal Heib
Use the memory registration routines in hfi1 and move them to rdmavt.
A follow on patch will address removing the duplicated code in the
hfi1 and qib drivers.
Reviewed-by: Ira Weiny
Reviewed-by: Mike Marciniszyn
Signed-off-by: Dennis Dalessandro
Drivers will need a set of flags to dictate behavior to rdmavt. This patch
adds a placeholder and a spot for it to live, as well as a few flags
that will be used.
Reviewed-by: Ira Weiny
Reviewed-by: Mike Marciniszyn
Signed-off-by: Dennis
From: Kamal Heib
Original patch is from Kamal Heib . It has
been split into three separate patches. This one for rdmavt,
a follow on for qib, and one for hfi1.
Create datastructure for address handle and implement the
create/destroy/modify/query of
Drivers may need to do some work once an address handle has been
created. Add a driver function for this purpose.
Reviewed-by: Ira Weiny
Reviewed-by: Mike Marciniszyn
Reviewed-by: Harish Chegondi
Signed-off-by: Dennis
Add pkey table in rdi per port data structure. Also bring in related pkey
functions. Drivers will still be responsible for allocating and
maintaining the pkey table. However they need to tell rdmavt where to find
the pkey table. We can not move the pkey table up into rdmavt because
drivers need to
Add table init as well as teardown for handling qpn maps. Drivers can still
provide this functionality by setting the QP_INIT_DRIVER bit.
Reviewed-by: Ira Weiny
Reviewed-by: Mike Marciniszyn
Signed-off-by: Dennis Dalessandro
The mmap data structure was moved in a previous commit. This patch now
pulls in the related functions.
Reviewed-by: Ira Weiny
Reviewed-by: Mike Marciniszyn
Signed-off-by: Dennis Dalessandro
---
Trying to print debug and error messages with the rdmavt helpers will not
work out so well if the drivers have not provided the get_card and get
pci functions. Use the normal pr_error instead until we can check this.
Reviewed-by: Ira Weiny
Reviewed-by: Mike Marciniszyn
Implement get_card_name and get_pci_dev helper functions for rdmavt
for qib.
Reviewed-by: Mike Marciniszyn
Reviewed-by: Ira Weiny
Signed-off-by: Dennis Dalessandro
---
drivers/infiniband/hw/qib/qib.h|2
Remove protection domain datastructure from qib and use rdmavts version.
Reviewed-by: Ira Weiny
Reviewed-by: Mike Marciniszyn
Signed-off-by: Dennis Dalessandro
---
drivers/infiniband/hw/qib/qib_keys.c |6 ++-
This patch removes most of the uses of QIB_PERMISSIBVE_LID and
QIB_MULTICAST_LID_BASE in favor of the recently added IB_* versions.
There are still minor uses in AH functions as well as the QIB_* defines
but those will be removed in a follow on patch.
Reviewed-by: Ira Weiny
Original patch for AH changes from Kamal Heib , split
apart from original. This patch also removes the qib specific multicast
lid base and permissive lid defines since they are no longer needed.
Use common LID defines in qib driver.
Reviewed-by: Ira Weiny
In preparation for moving the queue pair data structure to rdmavt the
members of the driver specific queue pairs which are not common need to be
pushed off to a private driver structure. This structure will be available
in the queue pair once moved to rdmavt as a void pointer. This patch while
not
Remove qp and mr support from qib and use rdmavt. These two changes
cannot be reasonably be split apart into separate patches because they
depend on eachother in multple places. This paves the way to remove
even more functions in subsequent patches.
Reviewed-by: Ira Weiny
The following series implements the beginning support of rdmavt in the qib
driver. The memory registration and protection domain functionality has been
moved out of the driver as well as critical qp data structures. More patches
will follow to incrementally remove code from qib and use the
This patch removes the qib_dma.c file and uses the version which has been
added to rdmavt.
Reviewed-by: Ira Weiny
Reviewed-by: Mike Marciniszyn
Signed-off-by: Dennis Dalessandro
---
This patch begins to make use of rdmavt by registering with it and
providing access to the header files. This is just the beginning of
rdmavt support in qib.
Most functionality is still being done in the driver, set flags so that
rdmavt will let qib continue to handle mr, qp, and cq init.
Original patch from Kamal Heib , split
apart from original.
Remove AH from qib and use rdmavt version.
Reviewed-by: Ira Weiny
Signed-off-by: Kamal Heib
Signed-off-by: Dennis Dalessandro
---
Remove srq from qib now that it has been moved into rdmavt.
Reviewed-by: Ira Weiny
Reviewed-by: Mike Marciniszyn
Reviewed-by: Harish Chegondi
Signed-off-by: Dennis Dalessandro
---
On Mon, Dec 07, 2015 at 03:49:12PM -0500, Dennis Dalessandro wrote:
> /* A multicast address requires a GRH (see ch. 8.4.1). */
> - if (ah_attr->dlid >= QIB_MULTICAST_LID_BASE &&
> - ah_attr->dlid != QIB_PERMISSIVE_LID &&
> + if (ah_attr->dlid >=
This series adds a new RDMA core abstraction that insulated the
ULPs from the nitty gritty details of CQ polling. See the individual
patches for more details.
Note that this series should be applied on top of my
"IB: merge struct ib_device_attr into struct ib_device" patch and the
MR cleanups.
From: Sagi Grimberg
We'll need it later with the new CQ abstraction. also switch
login bufs to void pointers.
Signed-off-by: Sagi Grimberg
Signed-off-by: Christoph Hellwig
---
drivers/infiniband/ulp/iser/iscsi_iser.h | 30 +--
Remove struct rdma_iu and instead allocate the struct ib_rdma_wr array
early and fill out directly. This allows us to chain the WRs, and thus
archive both less lock contention on the HCA workqueue as well as much
simpler error handling.
Signed-off-by: Christoph Hellwig
---
Signed-off-by: Christoph Hellwig
---
drivers/infiniband/ulp/srpt/ib_srpt.c | 327 +-
drivers/infiniband/ulp/srpt/ib_srpt.h | 28 +--
2 files changed, 88 insertions(+), 267 deletions(-)
diff --git a/drivers/infiniband/ulp/srpt/ib_srpt.c
This also moves recv completion handling from hardirq context into
softirq context.
Signed-off-by: Christoph Hellwig
---
drivers/infiniband/ulp/srp/ib_srp.c | 173 +---
drivers/infiniband/ulp/srp/ib_srp.h | 7 +-
2 files changed, 86 insertions(+),
From: Sagi Grimberg
Use the new CQ abstraction to simplify completions in the iSER
initiator.
Signed-off-by: Sagi Grimberg
Signed-off-by: Christoph Hellwig
---
drivers/infiniband/ulp/iser/iscsi_iser.h | 72 +---
From: Sagi Grimberg
Nicer this way.
Signed-off-by: Sagi Grimberg
Signed-off-by: Christoph Hellwig
---
drivers/infiniband/ulp/iser/iscsi_iser.h | 6 ++
drivers/infiniband/ulp/iser/iser_initiator.c | 3 +--
Signed-off-by: Christoph Hellwig
---
include/linux/irq_poll.h | 1 -
lib/irq_poll.c | 3 +--
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/include/linux/irq_poll.h b/include/linux/irq_poll.h
index c3145c7..ce9e1db 100644
--- a/include/linux/irq_poll.h
+++
Signed-off-by: Christoph Hellwig
---
include/linux/irq_poll.h | 2 --
1 file changed, 2 deletions(-)
diff --git a/include/linux/irq_poll.h b/include/linux/irq_poll.h
index ce9e1db..7527c03 100644
--- a/include/linux/irq_poll.h
+++ b/include/linux/irq_poll.h
@@ -7,9 +7,7 @@ typedef
There is no good reason to keep them apart, and this makes using the API
a bit simpler.
Signed-off-by: Christoph Hellwig
---
drivers/scsi/be2iscsi/be_main.c | 6 ++
drivers/scsi/ipr.c | 3 +--
include/linux/irq_poll.h| 13 -
lib/irq_poll.c
There is no good reason to start out disabled - drivers can control if
the poll instance can be scheduled by simply not scheduling it yet.
Signed-off-by: Christoph Hellwig
---
drivers/scsi/be2iscsi/be_main.c | 2 --
drivers/scsi/ipr.c | 2 --
lib/irq_poll.c
Signed-off-by: Christoph Hellwig
---
include/linux/irq_poll.h | 5 -
lib/irq_poll.c | 2 +-
2 files changed, 1 insertion(+), 6 deletions(-)
diff --git a/include/linux/irq_poll.h b/include/linux/irq_poll.h
index 73d7c20..c3145c7 100644
--- a/include/linux/irq_poll.h
The new name is irq_poll as iopoll is already taken. Better suggestions
welcome.
Signed-off-by: Christoph Hellwig
---
Documentation/kernel-per-CPU-kthreads.txt | 2 +-
block/Makefile| 2 +-
block/blk-iopoll.c| 224
On 12/07/2015 02:26 PM, Bart Van Assche wrote:
> On 12/01/2015 10:16 AM, Bart Van Assche wrote:
>> This patch series contains six bug fixes either for the SRP initiator
>> itself or for IB core functionality used by the SRP initiator. The order
>> of these patches matches the order in which the
> +struct ib_pd *rvt_alloc_pd(struct ib_device *ibdev,
> +struct ib_ucontext *context,
> +struct ib_udata *udata)
> +{
> + struct rvt_dev_info *dev = ib_to_rvt(ibdev);
> + struct rvt_pd *pd;
> + struct ib_pd *ret;
> +
> + pd =
> The following series implements rdmavt. This is the rdma verbs transport
> software library
This is going to be an annoying request, but I would rather see this named the
IB transport library, unless this framework is usable over iWarp as well.
N�r��yb�X��ǧv�^�){.n�+{��ٚ�{ay�
> +static int rvt_query_device(struct ib_device *ibdev,
> + struct ib_device_attr *props,
> + struct ib_udata *uhw)
> +{
> + /*
> + * Return rvt_dev_info.props contents
> + */
> + return -EINVAL;
ENOSYS on all of the function
> @@ -0,0 +1,89 @@
> +/*
> + *
> + * This file is provided under a dual BSD/GPLv2 license. When using or
> + * redistributing this file, you may do so under either license.
> + *
> + * GPL LICENSE SUMMARY
> + *
> + * Copyright(c) 2015 Intel Corporation.
I'm guessing that the GPL license text
> +/*
> + * Check driver override. If driver passes a value use it, otherwise we
> use our
> + * own value.
> + */
> +#define CDR(rdi, x) \
> + rdi->ibdev.x = rdi->ibdev.x ? : rvt_ ##x
This is an extremely obscure name.
No one will be able to look at this:
> + CDR(rdi, alloc_pd);
> +
On Mon, Dec 07, 2015 at 09:26:11PM +, Hefty, Sean wrote:
> > +static int rvt_query_device(struct ib_device *ibdev,
> > + struct ib_device_attr *props,
> > + struct ib_udata *uhw)
> > +{
> > + /*
> > +* Return rvt_dev_info.props contents
> > +
> include/rdma/rdma_vt.h | 53
>
> 1 files changed, 53 insertions(+), 0 deletions(-)
>
> diff --git a/include/rdma/rdma_vt.h b/include/rdma/rdma_vt.h
> index 5112dd7..39a0737 100644
> --- a/include/rdma/rdma_vt.h
> +++ b/include/rdma/rdma_vt.h
>
> drivers/infiniband/sw/rdmavt/qp.h |5 -
> include/rdma/rdma_vt.h| 233
> +
> 2 files changed, 233 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/infiniband/sw/rdmavt/qp.h
> b/drivers/infiniband/sw/rdmavt/qp.h
> index 4e4709f..c80d326
On 12/07/2015 01:07 PM, Doug Ledford wrote:
On 12/07/2015 02:26 PM, Bart Van Assche wrote:
On 12/01/2015 10:16 AM, Bart Van Assche wrote:
This patch series contains six bug fixes either for the SRP initiator
itself or for IB core functionality used by the SRP initiator. The order
of these
Moni Shoua asked:
> but how? all you have in hand is the sgid which can appear several
> times in the GID table in different indices.
Step back and review the context.
Adding an extra field to the WC is *not* going to redesign the hardware.
Anything that software can do in the verbs
On Mon, Dec 07, 2015 at 08:34:43PM +0200, Moni Shoua wrote:
> Well, just tell me how you want to discover gid_index when you poll
> the WC out of the CQ.
Hey, I'm not desiging this rocev2 stuff, this is something the rocev2
community needs to sort out.
> Like I said, the sgid itself is in the
On Mon, Dec 7, 2015 at 8:19 PM, wrote:
> Moni Shoua asked:
>
>
>
>> but how? all you have in hand is the sgid which can appear several
>
>> times in the GID table in different indices.
>
>
> Step back and review the context.
>
> Adding an extra field to the WC is *not* going to
Well, just tell me how you want to discover gid_index when you poll
the WC out of the CQ.
Like I said, the sgid itself is in the GRH that is scattered to the
buffers in the receive queue. When ib_poll_cq() is called the pointer
to GRH is not passed so there is no way to determine the gid_index
100 matches
Mail list logo