On 01/06/2016 03:39 PM, Sagi Grimberg wrote:
On 05/01/2016 16:26, Bart Van Assche wrote:
The Last WQE Reached event is only generated after one or more work
requests have been queued on the QP associated with a session. Since
session shutdown can start before any work requests have been queued
On 01/06/2016 03:31 PM, Sagi Grimberg wrote:
On 05/01/2016 16:25, Bart Van Assche wrote:
@@ -1518,8 +1517,7 @@ static int srpt_handle_cmd(struct srpt_rdma_ch *ch,
if (srpt_get_desc_tbl(send_ioctx, srp_cmd, &dir, &data_len)) {
pr_err("0x%llx: parsing SRP descriptor
On 01/06/2016 03:21 PM, Sagi Grimberg wrote:
Avoid that srpt_close_session() waits if it doesn't have to wait.
Can you explain when it doesn't have to wait? is it possible that
srpt_release_channel_work() was already triggered? isn't that a problem?
Hello Sagi,
The target core can decide to
On 01/06/2016 06:21 AM, Christoph Hellwig wrote:
On Tue, Jan 05, 2016 at 03:26:49PM +0100, Bart Van Assche wrote:
The Last WQE Reached event is only generated after one or more work
requests have been queued on the QP associated with a session. Since
session shutdown can start before any work
On 01/06/2016 06:13 AM, Christoph Hellwig wrote:
pr_debug("Aborting cmd with state %d and tag %lld\n", state,
ioctx->cmd.tag);
@@ -1299,14 +1291,16 @@ static int srpt_abort_cmd(struct srpt_send_ioctx *ioctx)
case SRPT_STATE_NEW:
case SRPT_STATE_DATA_IN:
Keep the ib_srpt session as long as srpt_close_session() may
access it.
Signed-off-by: Bart Van Assche
Cc: Christoph Hellwig
---
drivers/infiniband/ulp/srpt/ib_srpt.c | 4
1 file changed, 4 insertions(+)
diff --git a/drivers/infiniband/ulp/srpt/ib_srpt.c
b/drivers/infiniband/ulp/srpt
: Bart Van Assche
Cc: Christoph Hellwig
---
drivers/infiniband/ulp/srpt/ib_srpt.c | 33 -
1 file changed, 4 insertions(+), 29 deletions(-)
diff --git a/drivers/infiniband/ulp/srpt/ib_srpt.c
b/drivers/infiniband/ulp/srpt/ib_srpt.c
index cacb697..669ae5c 100644
--- a
The Last WQE Reached event is only generated after one or more work
requests have been queued on the QP associated with a session. Since
session shutdown can start before any work requests have been queued,
use a zero-length RDMA write to wait until a QP has been drained.
Signed-off-by: Bart Van
In the CM REQ message handler, store the channel pointer in
cm_id->context such that the function srpt_find_channel() is no
longer needed. Additionally, make the CM event messages more
informative.
Signed-off-by: Bart Van Assche
Cc: Christoph Hellwig
---
drivers/infiniband/ulp/srpt/ib_srp
read fails the corresponding SCSI command must fail. Hence
add a transport_generic_request_failure() call.
Remove an incorrect srpt_abort_cmd() call from srpt_rdma_write_done().
Avoid that srpt_send_done() calls srpt_abort_cmd() for finished SCSI
commands.
Signed-off-by: Bart Van Assche
Cc
Avoid that srpt_close_session() waits if it doesn't have to wait.
Additionally, increase the time during which srpt_close_session()
waits until closing a session has finished. This makes it easier
to detect session shutdown bugs.
Signed-off-by: Bart Van Assche
Cc: Christoph Hellwig
---
dr
The target core function that should be called if target_submit_cmd()
fails is target_put_sess_cmd(). Additionally, change the return type
of srpt_handle_cmd() from int into void.
Signed-off-by: Bart Van Assche
Cc: Christoph Hellwig
---
drivers/infiniband/ulp/srpt/ib_srpt.c | 24
efore target_wait_for_sess_cmds() by moving it into
srpt_release_channel_work().
Signed-off-by: Bart Van Assche
Cc: Christoph Hellwig
---
drivers/infiniband/ulp/srpt/ib_srpt.c | 14 +-
drivers/infiniband/ulp/srpt/ib_srpt.h | 1 -
2 files changed, 1 insertion(+), 14 deletions(-)
diff --git a/dr
The only allowed channel state changes are those that change
the channel state into a state with a higher numerical value.
This allows to merge the functions srpt_set_ch_state() and
srpt_test_and_set_ch_state() into a single function.
Signed-off-by: Bart Van Assche
Cc: Christoph Hellwig
Let the target core check task existence instead of the SRP target
driver.
Signed-off-by: Bart Van Assche
Cc: Christoph Hellwig
---
drivers/infiniband/ulp/srpt/ib_srpt.c | 54 ++-
1 file changed, 2 insertions(+), 52 deletions(-)
diff --git a/drivers/infiniband
Just like other target drivers, use scsilun_to_int() to unpack SCSI
LUN numbers. This patch only changes the behavior of ib_srpt for LUN
numbers >= 16384.
Signed-off-by: Bart Van Assche
Cc: Christoph Hellwig
---
drivers/infiniband/ulp/srpt/ib_srpt.c | 92 +++
Use the function target_reverse_dma_direction() instead of
reimplementing it.
Signed-off-by: Bart Van Assche
Cc: Christoph Hellwig
---
drivers/infiniband/ulp/srpt/ib_srpt.c | 17 ++---
1 file changed, 2 insertions(+), 15 deletions(-)
diff --git a/drivers/infiniband/ulp/srpt
The callers of srpt_get_ch_state() can access ch->state safely without
using locking. Hence inline this function.
Signed-off-by: Bart Van Assche
Cc: Christoph Hellwig
---
drivers/infiniband/ulp/srpt/ib_srpt.c | 42 ++-
1 file changed, 12 insertions(+),
srpt_sdev_name() is too trivial to keep it as a separate function.
Signed-off-by: Bart Van Assche
Cc: Christoph Hellwig
---
drivers/infiniband/ulp/srpt/ib_srpt.c | 14 ++
1 file changed, 2 insertions(+), 12 deletions(-)
diff --git a/drivers/infiniband/ulp/srpt/ib_srpt.c
b/drivers
's/sizeof \([^ );,]*\)/sizeof(\1)/g' drivers/infiniband/ulp/srpt/*.[ch]
Signed-off-by: Bart Van Assche
Cc: Christoph Hellwig
---
drivers/infiniband/ulp/srpt/ib_srpt.c | 42 +--
1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/drivers/infi
The following series of patches is what I came up with while testing the
most recent version of my SCSI target patch series (see also
http://thread.gmane.org/gmane.linux.scsi.target.devel/10905):
0001-IB-srpt-Add-parentheses-around-sizeof-argument.patch
0002-IB-srpt-Inline-srpt_sdev_name.patch
On 01/04/2016 04:44 AM, ira.we...@intel.com wrote:
From: Ira Weiny
Attributed ID was declared as an int while the value should really be big
endian 16.
Fixes: 35c4cbb17811 ("IB/core: Create get_perf_mad function in sysfs.c")
Reported-by: Bart Van Assche
Signed-off-by: Ira Weiny
On 01/03/2016 12:25 PM, Sagi Grimberg wrote:
But now the first I/O(s) could be lost if no other I/O comes in,
right? I suspect that we need to keep this loop to protect against
such corner cases.
It can happen theoretically, but why do we even bother? Why not just
post the recv buffer after we
("IB/cm: Do not queue work to a device that's going
away")
Signed-off-by: Bart Van Assche
Cc: Erez Shitrit
Cc: stable
---
drivers/infiniband/core/cm.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
ntext than IB WC processing,
remove the wait list processing code from the RTU handler.
Fixes: commit a42d985bd5b2 ("ib_srpt: Initial SRP Target merge for v3.3-rc1").
Signed-off-by: Bart Van Assche
Cc: Christoph Hellwig
---
drivers/infiniband/ulp/srpt/ib_srpt.c | 8
1 fi
[ib_srpt]
[] __ib_process_cq+0x43/0xc0 [ib_core]
[] ib_cq_poll_work+0x25/0x70 [ib_core]
[] process_one_work+0x1bd/0x460
[] worker_thread+0x118/0x420
[] kthread+0xe4/0x100
[] ret_from_fork+0x3f/0x70
Fixes: commit 59fae4deaad3 ("IB/srpt: chain RDMA READ/WRITE requests").
Signed-off-by
The IRQ_POLL_F_SCHED bit is set as long as polling is ongoing.
This means that irq_poll_sched() must proceed if this bit has
not yet been set.
Fixes: commit ea51190c0315 ("irq_poll: fold irq_poll_sched_prep into
irq_poll_sched").
Signed-off-by: Bart Van Assche
Reviewed-by: Christo
Hello Doug,
This series of three patches fixes new issues that exist in the
git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma.git/k.o/for-4.5
branch. It would be appreciated if these patches could be included in
the kernel 4.5 RDMA pull request.
0001-irq_poll-Fix-irq_poll_sched.patc
On 12/30/2015 01:34 PM, Leon Romanovsky wrote:
On Wed, Dec 30, 2015 at 02:22:23PM +0200, Or Gerlitz wrote:
On 12/30/2015 2:04 PM, Bart Van Assche wrote:
Hello Christoph,
Can you check whether the branch in the subject of this e-mail works fine
on your setup (commit 59caaed7a7) ? On my test
On 12/30/2015 03:14 PM, Matan Barak wrote:
We were allocating larger memory space than requried for
cma_dev_group->default_ports_group.
Please change the subject into something like "Do not allocate more
...". Please also fix the spelling error in the patch description.
Thanks,
Bart.
--
To
Hello Christoph,
Can you check whether the branch in the subject of this e-mail works
fine on your setup (commit 59caaed7a7) ? On my test setup (Dell R430
with two ConnectX-3 adapters) this branch crashes during boot in
get_counter_table() (see also the attached screenshot).
Thanks,
Bart.
On 12/30/2015 07:01 AM, Or Gerlitz wrote:
On 10/28/2015 4:52 PM, Matan Barak wrote:
@@ -134,16 +138,14 @@ static int write_gid(struct ib_device *ib_dev,
u8 port,
{
int ret = 0;
struct net_device *old_net_dev;
-unsigned long flags;
/* in rdma_cap_roce_gid_table, this funci
Detected this by building the IB core with W=1. See also patch
"IB core: Fix ib_sg_to_pages()" (commit 8f5ba10ed40a).
Signed-off-by: Bart Van Assche
Cc: Sagi Grimberg
Cc: Christoph Hellwig
---
drivers/infiniband/core/verbs.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
On 12/07/2015 09:51 PM, Christoph Hellwig wrote:
> 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.
Ple
On 12/07/2015 09:51 PM, Christoph Hellwig wrote:
diff --git a/lib/irq_poll.c b/lib/irq_poll.c
index 88af879..13cb149 100644
--- a/lib/irq_poll.c
+++ b/lib/irq_poll.c
@@ -21,13 +21,17 @@ static DEFINE_PER_CPU(struct list_head, blk_cpu_iopoll);
*
* Description:
* Add this irq_poll stru
On 12/07/2015 09:51 PM, Christoph Hellwig wrote:
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.
Hello Christoph,
After having tested the SRP initiator and target drivers with this p
On 12/18/2015 02:55 PM, Christoph Hellwig wrote:
Signed-off-by: Christoph Hellwig
Shouldn't the description of this patch be changed into something like
"Remove the usecnt field from ib_mr since it is always zero" ?
Anyway:
Reviewed-by: Bart Van Assche
--
To unsubscribe
On 12/18/2015 09:59 AM, Or Gerlitz wrote:
Instead, use the cached copy of the attributes present on the device.
Signed-off-by: Or Gerlitz
---
drivers/infiniband/ulp/ipoib/ipoib_cm.c | 19 ---
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 14 +++--
drivers/infiniband/ulp/ip
On 12/18/2015 09:59 AM, Or Gerlitz wrote:
OK, Doug, this is my suggestion for the dev attr cleanup -- it
has the advantages of leaving the attrs on a well defined location,
a field in the IB device, the ability to get that through smaller
patches, avoid touching any of the HW drivers, etc.
Hel
On 12/17/2015 06:41 PM, Jason Gunthorpe wrote:
On Thu, Dec 17, 2015 at 03:44:19PM +0200, Sagi Grimberg wrote:
+ ret = ib_query_device(device, &device->attrs);
+ if (ret) {
+ printk(KERN_WARNING "Couldn't query the device attributes\n");
+ goto out;
+
On 12/07/2015 12:51 PM, Christoph Hellwig wrote:
[ ... ]
Reviewed-by: Bart Van Assche
--
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
On 12/07/2015 12:51 PM, Christoph Hellwig wrote:
[ ... ]
Reviewed-by: Bart Van Assche
--
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
On 12/07/2015 12:51 PM, Christoph Hellwig wrote:
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
^^^
Did you perhaps intend
On 12/07/2015 12:51 PM, Christoph Hellwig wrote:
This adds an abstraction that allows ULP to simply pass a completion
^^^
I think this should either be changed into either "an ULP" or "ULPs".
+/**
+ * ib_process_direct_cq - process a CQ in caller context
On 12/07/2015 12:51 PM, Christoph Hellwig wrote:
[ ... ]
Reviewed-by: Bart Van Assche
--
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
On 12/07/2015 12:51 PM, Christoph Hellwig wrote:
> [ ... ]
Reviewed-by: Bart Van Assche
--
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
in the original
code but no longer in the new code. Whether or not this gets addressed:
Reviewed-by: Bart Van Assche
--
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.
On 12/07/2015 12:51 PM, Christoph Hellwig wrote:
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.
Reviewed-by: Bart Van Assche
--
To unsubscribe from this list: send the line "unsubscribe linux-rdm
On 12/07/2015 12:51 PM, Christoph Hellwig wrote:
+static void srp_send_done(struct ib_cq *cq, struct ib_wc *wc)
+{
+ struct srp_iu *iu = container_of(wc->wr_cqe, struct srp_iu, cqe);
+ struct srp_rdma_ch *ch = cq->cq_context;
+
+ if (likely(wc->status != IB_WC_SUCCESS)) {
+
gets
addressed:
Reviewed-by: Bart Van Assche
--
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
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
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
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/01/2015 10:16 AM, Bart Van Assche wrote:
> [ ... ]
Hello,
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 code below is not present in these
drivers and why
On 12/03/2015 01:18 AM, Christoph Hellwig wrote:
> The patch looks good to me, but while we touch this area, how about
> throwing in a few cosmetic fixes as well?
How about the patch below ? In that version of the ib_sg_to_pages() fix
these concerns have been addressed and additionally to more bu
On 12/02/2015 01:31 AM, Sagi Grimberg wrote:
> On 01/12/2015 21:10, Bart Van Assche wrote:
>> On 12/01/2015 10:32 AM, Sagi Grimberg wrote:
>> How ib_sg_to_pages() reports to its caller that mapping the first
>> scatterlist element failed is not important to me. I included t
On 12/01/2015 10:32 AM, Sagi Grimberg wrote:
Fix the code for detecting gaps and disable the code for chunking.
A gap occurs not only if the second or later scatterlist element
is not aligned but also if any scatterlist element other than the
last does not end at a page boundary. Disable the code
On 12/01/2015 10:37 AM, Sagi Grimberg wrote:
On 01/12/2015 20:18, Bart Van Assche wrote:
Detected by sparse.
Fixes: commit 330179f2fa93 ("IB/srp: Register the indirect data buffer
descriptor")
Signed-off-by: Bart Van Assche
Cc: stable # v4.3+
Cc: Sagi Grimberg
Cc: Christoph H
On 12/01/2015 10:35 AM, Sagi Grimberg wrote:
After dma_map_sg() has been called the return value of that function
must be used as the number of elements in the scatterlist instead of
scsi_sg_count().
Umm, but ib_map_mr_sg iterates on the sg list. Say you have sg_nents=3
and after mapping you go
After dma_map_sg() has been called the return value of that function
must be used as the number of elements in the scatterlist instead of
scsi_sg_count().
Fixes: commit f7f7aab1a5c0 ("IB/srp: Convert to new registration API")
Reported-by: Christoph Hellwig
Signed-off-by: Bart Van
returns a negative error code instead of
zero if the first set_page() call fails.
Fixes: commit 4c67e2bfc8b7 ("IB/core: Introduce new fast registration API")
Reported-by: Christoph Hellwig
Signed-off-by: Bart Van Assche
Cc: stable # v4.4+
Cc: Sagi Grimberg
Cc: Sebastian Parschauer
--
Detected by sparse.
Fixes: commit 330179f2fa93 ("IB/srp: Register the indirect data buffer
descriptor")
Signed-off-by: Bart Van Assche
Cc: stable # v4.3+
Cc: Sagi Grimberg
Cc: Christoph Hellwig
Cc: Sebastian Parschauer
---
drivers/infiniband/ulp/srp/ib_srp.c | 2 +-
1 file
From: Christoph Hellwig
Without this sg_dma_len will return 0 on architectures tha have
the dma_length field.
Fixes: commit f7f7aab1a5c0 ("IB/srp: Convert to new registration API")
Signed-off-by: Christoph Hellwig
---
drivers/infiniband/ulp/srp/ib_srp.c | 3 +++
1 file changed, 3 insertions(+)
ite+0x54/0xc0
[] entry_SYSCALL_64_fastpath+0x12/0x6f
Signed-off-by: Bart Van Assche
Reviewed-by: Christoph Hellwig
Reviewed-by: Sagi Grimberg
Cc: Sebastian Parschauer
Cc: stable
---
drivers/infiniband/ulp/srp/ib_srp.c | 22 +-
1 file changed, 13 insertions(+), 9 deletions(-)
diff --
From: Sagi Grimberg
When using work request based memory registration (fast_reg)
we must reserve SQ entries for registration and invalidation
in addition to send operations. Each IO consumes 3 SQ entries
(registration, send, invalidation) so we need to allocate 3x
larger send-queue instead of 2x.
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 this series are:
0001-IB-srp-Fix-a-memory-leak.
uperfluous.
Signed-off-by: Bart Van Assche
---
cmdif/tools_cif.c| 1 -
cmdparser/my_getopt.c| 3 -
common/compatibility.h | 7 +
flint/Makefile.am| 2 +-
flint/subcommands.cpp
Avoid that gcc prints a warning about not checking the result of fgets().
Signed-off-by: Bart Van Assche
---
mstdump/crd_lib/crdump.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mstdump/crd_lib/crdump.c b/mstdump/crd_lib/crdump.c
index 451a944..3e3c4bc 100755
--- a
7;
warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
Signed-off-by: Bart Van Assche
---
cmdif/Makefile.am| 2 +-
cmdparser/Makefile.am| 2 --
configure.ac | 4 +++-
dev_mgt/Makefile.am | 2 +-
flint
This avoids that the option sequence "-I -I" is passed to the compiler,
a sequence that causes weird error messages to be printed.
Signed-off-by: Bart Van Assche
---
mlxconfig/Makefile.am| 2 +-
mlxfwops/lib/Makefile.am | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
di
These four patches bring the mstflint coding style closer to that of the
other RDMA user space software. The patches in this series are:
0001-Fix-several-automake-warnings.patch
0002-Makefile.am-Remove-the-undefined-variable-MFT_EXT_LI.patch
0003-crd_read_line-Rework-code-to-suppress-a-compiler-
On 11/25/2015 11:34 AM, Bart Van Assche wrote:
> On 11/23/2015 05:14 PM, Bart Van Assche wrote:
>> On 11/22/2015 07:31 AM, Christoph Hellwig wrote:
>>> On Sun, Nov 22, 2015 at 05:26:28PM +0200, Sagi Grimberg wrote:
>>>>> No. register_always=Y is already broken in
On 11/23/2015 05:14 PM, Bart Van Assche wrote:
On 11/22/2015 07:31 AM, Christoph Hellwig wrote:
On Sun, Nov 22, 2015 at 05:26:28PM +0200, Sagi Grimberg wrote:
No. register_always=Y is already broken in 4.3, but
register_always=N is
now also broken in 4.4.
OK, I'm confused so please l
On 11/22/2015 07:31 AM, Christoph Hellwig wrote:
On Sun, Nov 22, 2015 at 05:26:28PM +0200, Sagi Grimberg wrote:
No. register_always=Y is already broken in 4.3, but register_always=N is
now also broken in 4.4.
OK, I'm confused so please let me understand slowly :)
Your patch "ib_srp: initializ
On 11/22/2015 05:37 AM, Christoph Hellwig wrote:
On Tue, Nov 10, 2015 at 12:35:05PM +0200, Sagi Grimberg wrote:
Are you planning to pick this up? Note that this patch
is stable material as well.
Doug? any plans for this patch?
We should really get this in an into -stable. Bart, can you rese
On 11/23/2015 02:18 PM, Jason Gunthorpe wrote:
On Mon, Nov 23, 2015 at 01:54:05PM -0800, Bart Van Assche wrote:
What I don't see is how SRP handles things when the
sendq fills up, ie the case where __srp_get_tx_iu() == NULL. It looks
like the driver starts to panic and generates printks. I
On 11/23/2015 01:28 PM, Jason Gunthorpe wrote:
On Mon, Nov 23, 2015 at 01:04:25PM -0800, Bart Van Assche wrote:
Considerable time ago the send queue in the SRP initiator driver was
modified from signaled to non-signaled to reduce the number of interrupts
triggered by the SRP initiator driver
On 11/23/2015 12:37 PM, Jason Gunthorpe wrote:
On Sat, Nov 14, 2015 at 08:13:44AM +0100, Christoph Hellwig wrote:
On Fri, Nov 13, 2015 at 03:06:36PM -0700, Jason Gunthorpe wrote:
Looking at that thread and then at the patch a bit more..
+void ib_process_cq_direct(struct ib_cq *cq)
[..]
+
On 11/22/15 06:57, Sagi Grimberg wrote:
I think that bart wants to allow the caller to select cpu affinity
per CQ. In this case ib_alloc_cq in workqueue mode would need to
accept a affinity_hint from the caller (default to wild-card
WORK_CPU_UNBOUND).
Hmm, true. How would be set that hint from
Ensure that validate_ipv4_net_dev() calls rcu_read_unlock() if
fib_lookup() fails. Detected by sparse. Compile-tested only.
Fixes: "IB/cma: Validate routing of incoming requests" (commit f887f2ac87c2).
Cc: Haggai Eran
Cc: stable
---
drivers/infiniband/core/cma.c | 5 +
1 file changed, 1 ins
On 11/20/2015 02:16 AM, Christoph Hellwig wrote:
> On Wed, Nov 18, 2015 at 10:20:14AM -0800, Bart Van Assche wrote:
>> Are you perhaps referring to the sysfs CPU mask that allows to control
>> workqueue affinity ?
>
> I think he is referring to the defintion of WQ_UNBOUN
ite+0x54/0xc0
[] entry_SYSCALL_64_fastpath+0x12/0x6f
Signed-off-by: Bart Van Assche
Cc: Sagi Grimberg
Cc: Sebastian Parschauer
Cc: Christoph Hellwig
Cc: stable
---
drivers/infiniband/ulp/srp/ib_srp.c | 22 +-
1 file changed, 13 insertions(+), 9 deletions(-)
diff --git a/drivers/infin
On 11/17/2015 11:55 PM, Sagi Grimberg wrote:
+static void ib_cq_poll_work(struct work_struct *work)
+{
+struct ib_cq *cq = container_of(work, struct ib_cq, work);
+int completed;
+
+completed = __ib_process_cq(cq, IB_POLL_BUDGET_WORKQUEUE);
+if (completed >= IB_POLL_BUDGET_WORKQUE
On 11/18/2015 01:15 AM, Sagi Grimberg wrote:
On 18/11/2015 03:17, Bart Van Assche wrote:
On 11/13/2015 05:46 AM, Christoph Hellwig wrote:
-ret = ib_post_send(ch->qp, &wr.wr, &bad_wr);
-if (ret)
-break;
+if (i == n_rdma - 1) {
+
On 11/13/2015 05:46 AM, Christoph Hellwig wrote:
- ret = ib_post_send(ch->qp, &wr.wr, &bad_wr);
- if (ret)
- break;
+ if (i == n_rdma - 1) {
+ /* only get completion event for the last rdma read */
+
On 11/13/2015 05:46 AM, Christoph Hellwig wrote:
+static void srp_inv_rkey_done(struct ib_cq *cq, struct ib_wc *wc)
+{
+ srp_handle_qp_err(cq, wc, "INV RKEY");
+}
>
[ ... ]
>
+static void srp_reg_mr_done(struct ib_cq *cq, struct ib_wc *wc)
+{
+ srp_handle_qp_err(cq, wc, "FAST REG"
On 11/13/2015 05:46 AM, Christoph Hellwig wrote:
[ ... ]
This patch contains two logical changes:
- Conversion to the new CQ API.
- Removal of the ib_srpt_compl thread.
Had it been considered to implement these changes as two separate patches ?
Thanks,
Bart.
--
To unsubscribe from this list:
On 11/13/2015 05:46 AM, Christoph Hellwig wrote:
> [ ... ]
The previous patch and this patch look like great work to me. However,
this patch not only reworks the SRP target driver but also prevents
users to move the SRP completion thread to another CPU core than the CPU
core that processes the
On 11/13/2015 05:46 AM, Christoph Hellwig wrote:
+ * context and does not ask from completion interrupts from the HCA.
Should this perhaps be changed into "for" ?
+ */
+void ib_process_cq_direct(struct ib_cq *cq)
+{
+ WARN_ON_ONCE(cq->poll_ctx != IB_PO
On 11/17/2015 09:16 AM, Bart Van Assche wrote:
On 11/13/2015 11:02 PM, Christoph Hellwig wrote:
On Fri, Nov 13, 2015 at 11:19:24AM -0800, Bart Van Assche wrote:
On 11/13/2015 05:46 AM, Christoph Hellwig wrote:
The new name is irq_poll as iopoll is already taken. Better suggestions
welcome
On 11/13/2015 11:02 PM, Christoph Hellwig wrote:
On Fri, Nov 13, 2015 at 11:19:24AM -0800, Bart Van Assche wrote:
On 11/13/2015 05:46 AM, Christoph Hellwig wrote:
The new name is irq_poll as iopoll is already taken. Better suggestions
welcome.
Would it be possible to provide more background
On 11/15/2015 01:34 AM, Sagi Grimberg wrote:
This is taken from srp, and srp drains using a recv wr due to a race
causing a use-after-free condition in srp which re-posts a recv buffer
in the recv completion handler.
Hello Sagi,
Would it be possible to clarify this ? Does this refer to an exis
On 11/16/2015 09:22 AM, Christoph Hellwig wrote:
the code in this area changed enough since 4.3 that it won't easily
apply. But a backport would still be very useful!
In that case:
Reviewed-by: Bart Van Assche
--
To unsubscribe from this list: send the line "unsubscribe linux-rd
On 11/15/2015 09:59 AM, Christoph Hellwig wrote:
Without this sg_dma_len will return 0 on architectures tha have
the dma_length field.
Signed-off-by: Christoph Hellwig
---
drivers/infiniband/ulp/srp/ib_srp.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/infiniband/ulp/srp/ib
On 11/15/15 10:06, Christoph Hellwig wrote:
FYI, I sent a patch for the zero S/G length issue. With this xfstests
does fine for ext4 and btrfs. With XFS I still run into corruption
warnings for the slab use after free poison pattern. I suspect that
issue might be related to uniqueue XFS I/O pa
On 11/13/2015 10:25 AM, Jason Gunthorpe wrote:
On Fri, Nov 13, 2015 at 02:46:43PM +0100, Christoph Hellwig wrote:
This adds an abstraction that allows ULP to simply pass a completion
object and completion callback with each submitted WR and let the RDMA
core handle the nitty gritty details of ho
On 11/13/2015 05:46 AM, Christoph Hellwig wrote:
The new name is irq_poll as iopoll is already taken. Better suggestions
welcome.
Hello Christoph,
Would it be possible to provide more background information about this ?
Which other kernel subsystem is using the name iopoll ? I think the name
On 11/12/2015 09:59 AM, Christoph Hellwig wrote:
[ 108.998574] WARNING: CPU: 0 PID: 1258 at kernel/sched/core.c:7389
__might_sleep+0xa7/0xb0()
[ 108.998580] do not call blocking ops when !TASK_RUNNING; state=1 set
Although this is most likely unrelated to the issue reported at the
start of
On 11/12/2015 03:48 AM, Hal Rosenstock wrote:
A new SRP target has been observed to respond to Send CM REQ
with GetResp of CM REQ with bad status. This is non conformant
with IBA spec but exposes a vulnerability in the current MAD/CM
code which will respond to the incoming GetResp of CM REQ as if
On 11/10/2015 09:15 AM, Christoph Hellwig wrote:
scsi host3: ib_srp: failed receive status WR flushed (5) for iu 880313f4ca40
Can you also post the logs from the target system from around the time
this message was logged on the initiator system ? Usually this message
means that the target
1 - 100 of 1280 matches
Mail list logo