-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
On 03/17/2014 11:11 PM, Jeremy Linton wrote:
> On 3/15/2014 3:51 AM, Hannes Reinecke wrote:
>> Add a flag 'vpd_invalid' to the SCSI device to indicate that
>> the VPD data needs to be refreshed. This is required if
>> either a manual rescan is triggere
Hi,
On 03/05/2014 06:45 AM, Michael Opdenacker wrote:
> This patch removes the use of the IRQF_DISABLED flag
> in several drivers in drivers/scsi/
>
> It's a NOOP since 2.6.35 and it will be removed one day.
>
> Signed-off-by: Michael Opdenacker
> ---
> drivers/scsi/dtc.c| 2 +-
>
On Tue, 2014-03-18 at 11:28 +1100, Finn Thain wrote:
> This patch series addresses several issues with NCR5380 drivers:
[]
> 3. Broken debugging code.
My preference would be to change dprintk to scsi_dbg
Seems sensible otherwise.
--
To unsubscribe from this list: send the line "unsubscribe linux
Only the NCR5380_dprint() macro should invoke the NCR5380_print() function.
That's why NCR5380.c only defines the function #if NDEBUG. Use the standard
macro.
Signed-off-by: Finn Thain
---
drivers/scsi/sun3_scsi.c |4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
Index: linux-m68k/dr
The change from cmd->target to cmd->device->id was apparently the purpose of
commit a7f251228390e87d86c5e3846f99a455517fdd8e in
kernel/git/tglx/history.git but some instances have been missed.
Also fix the "NDEBUG_LAST_WRITE_SENT" and "NDEBUG_ALL" typo's.
Also fix some format strings (%ul becomes
Signed-off-by: Finn Thain
---
drivers/scsi/NCR5380.c |2 --
drivers/scsi/NCR5380.h |4
drivers/scsi/g_NCR5380.c |4
drivers/scsi/g_NCR5380.h |4
drivers/scsi/mac_scsi.c |4
drivers/scsi/mac_scsi.h |4
drivers/scsi/sun3_scsi.c |4
dr
There are three implementations of the core NCR5380 driver and three sets
of debugging macro definitions. And all three implementations use the
NCR5380.h header as well.
Two of the definitions of the dprintk macro accept a variable argument list
whereas the third does not. Standardize on the varia
BOARD_NORMAL is completely unused and BOARD_NCR53C400 is used only by
g_NCR5380 internally. Remove the unused definitions.
Signed-off-by: Finn Thain
---
drivers/scsi/arm/cumana_1.c |3 ---
drivers/scsi/arm/oak.c |3 ---
drivers/scsi/mac_scsi.h |3 ---
drivers/scsi/sun3_scsi
All NCR5380 drivers already include the NCR5380.h header. Better to
adopt those macros rather than have three variations on them.
Moreover, the macros in NCR5380.h are preferable anyway: the atari_NCR5380
and sun3_NCR5380 versions are inflexible. For example, they can't accomodate
NCR5380_dprint(N
Move the #include "NCR5380.h" out of the sun3_scsi.h header file and into
the driver .c files, like all the other NCR5380 drivers in the tree.
This improves uniformity and reduces the depth of nested includes. The
sequence of #include's, #define's and #if's no longer does my head in.
Signed-off-b
Remove the unused (and divergent) debugging macro definitions from
the sun3_NCR5380 and atari_NCR5380 drivers. These drivers have been
converted to use the common macros in NCR5380.h.
Signed-off-by: Finn Thain
---
drivers/scsi/atari_scsi.h | 93 ---
drivers/scsi/sun3_scsi.
All NCR5380 drivers already include the NCR5380.h header. Better to
adopt those macros rather than have three variations on them.
Moreover, the macros in NCR5380.h are preferable because the atari_NCR5380
and sun3_NCR5380 versions are inflexible. For example, they can't accomodate
dprintk(NDEBUG_M
The sun3 drivers suffer from a whole bunch of duplicated code. Fix this
by following the g_NCR5380_mmio example. (Notionally, sun3_scsi relates to
sun3_scsi_vme in the same way that g_NCR5380 relates to g_NCR5380_mmio.)
Dead code is also removed: we now have working debug macros so
SUN3_SCSI_DEBUG
All three NCR5380 core driver implementations share the same NCR5380.h
header file so they need to agree on certain macro definitions.
The flag bit used by the NDEBUG_MERGING macro in atari_NCR5380 and
sun3_NCR5380 collides with the bit used by NDEBUG_LISTS.
Moreover, NDEBUG_ABORT appears in NCR5
(Second attempt... sorry for the earlier spam.)
This patch series addresses several issues with NCR5380 drivers:
1. The complex network of #include directives.
2. Three inconsistent implementations of the core driver all attempting
to share the same macro definitions in NCR5380.h.
3. Broken
HOSTS_C is always undefined. There is no hosts.c anymore.
Signed-off-by: Finn Thain
---
drivers/scsi/g_NCR5380.h |3 ---
drivers/scsi/mac_scsi.h |3 ---
drivers/scsi/pas16.h |3 ---
drivers/scsi/sun3_scsi.h |3 ---
drivers/scsi/t128.h |3 ---
5 files changed, 15 de
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
On 3/15/2014 3:51 AM, Hannes Reinecke wrote:
> Add a flag 'vpd_invalid' to the SCSI device to indicate that the VPD data
> needs to be refreshed. This is required if either a manual rescan is
> triggered or if the sense code INQUIRY DATA HAS CHANGED ha
On Mon, Mar 17, 2014, Sagi Grimberg wrote:
> On 3/17/2014 6:59 PM, Mike Christie wrote:
>> This patch is ok, but happened to the patch for the xmit task path?
> Hey Mike, Thanks for your Ack on this.
> The xmit_task fix was posted as a separate patch since it is not specific
> to this set (relev
On Mon, Mar 17, 2014 at 12:52 PM, Sagi Grimberg wrote:
> Target/dif: Introduce protection-passthough-only mode
s/passthough/passthrough/
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://v
>It's missing checking in two places: from pci_map_single() and on
>scsi_dma_map(). In the latter case, pvscsi_map_buffers needs to return
>an error code and then pvscsi_queue_ring can return -1.
Agreed! And in addition to that pvscsi_queue_ring() also calls pci_map_single()
to map the sense buff
On 3/17/2014 6:59 PM, Mike Christie wrote:
This patch is ok, but happened to the patch for the xmit task path?
Hey Mike, Thanks for your Ack on this.
The xmit_task fix was posted as a separate patch since it is
not specific to this set (relevant also for existing data dma_mapping in
xmit_t
On Fri, Mar 14, 2014 at 05:53:17PM -0600, Loc Ho wrote:
> This patch adds support for the APM X-Gene SoC AHCI SATA host controller. In
> order for the host controller to work, the corresponding PHY driver
> musts also be available. Currently, only Gen3 disk is supported with this
> initial version.
On Mon, 2014-03-17 at 12:02 +0100, Paolo Bonzini wrote:
> Il 17/03/2014 06:32, Nicholas A. Bellinger ha scritto:
> > + if (vq->iov[0].iov_len == sizeof(v_req_pi)) {
> > + req = (unsigned char *)&v_req_pi;
> > + target = &v_req_pi.lun[1];
> > +
On Sun, 2014-03-16 at 11:21 -0700, James Bottomley wrote:
> On Sat, 2014-03-15 at 16:35 -0700, Dan Williams wrote:
> > On Sat, Mar 15, 2014 at 2:47 PM, James Bottomley
> > wrote:
> > > On Fri, 2014-03-14 at 13:11 -0700, Dan Williams wrote:
> > >> On Mon, Mar 10, 2014 at 11:29 PM, James Bottomley
>
On Mon, 2014-03-17 at 12:52 +0200, Sagi Grimberg wrote:
> Hey Nic,
>
> So here are a couple of fixes for iSER target DIF on top of latest
> for-next for 3.15.
>
> Patch #1 fixes suppressed completions for REG_SIG_MR work requests.
>
> Patch #2 fixes accounting of post_send_buf_count when RDMA_RE
On Mon, 2014-03-17 at 12:52 -0400, Josh Boyer wrote:
> Hi All,
>
> We've had a few reports[1][2] now on the vmw_pvscsi driver throwing
> DMA-API mapping errors when the DMA_API_DEBUG option is enabled. I've
> included one from a recent 3.14-rc6 kernel below. Looking at
> vmw_pvscsi.c, I can see
On 03/17/2014 02:25 AM, Or Gerlitz wrote:
> On Wed, Mar 5, 2014 at 7:43 PM, Sagi Grimberg wrote:
>> >
>> > iSCSI needs to be at least aware that a task involves protection
>> > information. In case it does, after the transaction completed
>> > libiscsi will ask the transport to check the protectio
Hi All,
We've had a few reports[1][2] now on the vmw_pvscsi driver throwing
DMA-API mapping errors when the DMA_API_DEBUG option is enabled. I've
included one from a recent 3.14-rc6 kernel below. Looking at
vmw_pvscsi.c, I can see pvscsi_map_buffers is missing the calls to
pci_dma_mapping_error,
On 03/17, Tetsuo Handa wrote:
>
> Oleg Nesterov wrote:
> >
> > Personally I really dislike this hack. And btw, why we return -ENOMEM if
> > SIGKILL'ed? Why not EINTR ?
>
> I chose -ENOMEM because -ENOMEM looked better for conveying that current
> thread
> was SIGKILLed by the OOM killer in order t
Avoid hitting the host-wide free_list lock unless we need to put a command
back onto the freelist.
Signed-off-by: Christoph Hellwig
Acked-by: Hannes Reinecke
---
drivers/scsi/scsi.c | 11 ++-
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/scsi/scsi.c b/drivers/s
Commit 1874198 ("blk-mq: rework flush sequencing logic") switched
->flush_rq from being an embedded member of the request_queue structure
to being dynamically allocated in blk_init_queue_node().
Request-based DM multipath doesn't use blk_init_queue_node(), instead it
uses blk_alloc_queue_node() +
This allows drivers to specify the size of their per-command private
data in the host template and then get extra memory allocated for
each command instead of needing another allocation in ->queuecommand.
With the current SCSI code that already does multiple allocations for
each command this proba
Just have one level of alloc/free functions that take a host instead
of two levels for the allocation and different calling conventions
for the free.
Signed-off-by: Christoph Hellwig
Reviewed-by: Paolo Bonzini
---
drivers/scsi/scsi.c | 67 +++
1
If we don't have starved devices we don't need to take the host lock
to iterate over them. Also split the function up to be more clear.
Signed-off-by: Christoph Hellwig
---
drivers/scsi/scsi_lib.c | 43 ---
1 file changed, 24 insertions(+), 19 deletions
We don't use the passed in scsi command for anything, so just add a adapter-
wide internal status to go along with the internal scb that is used unter
int_mtx to pass back the return value and get rid of all the complexities
and abuse of the scsi_cmnd structure.
This gets rid of the only user of s
We need to pass the actual nr_bytes instead of all bytes in the request.
Signed-off-by: Christoph Hellwig
---
block/blk-mq.c |2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 883f720..d81dc8b 100644
--- a/block/blk-mq.c
+++ b/block/blk-m
Avoid a spurious device get/put pair by cleaning up scsi_requeue_command
and folding scsi_unprep_request into it.
Signed-off-by: Christoph Hellwig
Acked-by: Hannes Reinecke
---
drivers/scsi/scsi_lib.c | 35 +++
1 file changed, 3 insertions(+), 32 deletions(-)
SCSI devices may only be removed by calling scsi_remove_device().
That function must invoke blk_cleanup_queue() before the final put
of sdev->sdev_gendev. Since blk_cleanup_queue() waits for the
block queue to drain and then tears it down, scsi_request_fn cannot
be active anymore after blk_cleanup_
Eliminate a get_device() / put_device() pair from scsi_next_command().
Both are atomic operations hence removing these slightly improves
performance.
[hch: slight changes due to different context]
Signed-off-by: Bart Van Assche
Acked-by: Hannes Reinecke
Signed-off-by: Christoph Hellwig
---
dr
Taken almost entirely from Nicholas Bellinger's scsi-mq conversion.
Signed-off-by: Christoph Hellwig
Acked-by: Paolo Bonzini
---
drivers/scsi/virtio_scsi.c | 25 +++--
include/scsi/scsi_cmnd.h |9 +
2 files changed, 16 insertions(+), 18 deletions(-)
diff --g
Many callers won't need this and we can optimize them away. In addition
the handling in the __-prefixed variants was inconsistant to start with.
Based on an earlier patch from Bart Van Assche.
Signed-off-by: Christoph Hellwig
---
drivers/scsi/scsi.c | 37 -
Prepare for not taking a host-wide lock in the dispatch path by pushing
the lock down into the places that actually need it. Note that this
patch is just a preparation step, as it will actually increase lock
roundtrips and thus decrease performance on its own.
Signed-off-by: Christoph Hellwig
--
Avoid taking the queue_lock to check the per-device queue limit. Instead
we do an atomic_inc_return early on to grab our slot in the queue,
and if nessecary decrement it after finishing all checks.
Unlike the host and target busy counters this doesn't allow us to avoid the
queue_lock in the reque
By folding scsi_end_request into its only caller we can significantly clean
up the completion logic. We can use simple goto labels now to only have
a single place to finish or requeue command there instead of the previous
convoluted logic.
Signed-off-by: Christoph Hellwig
---
drivers/scsi/scsi_
Instead of trying to guess when we have a BIDI buffer in scsi_release_buffers
add a function to explicitly free the BIDI ressoures in the one place that
handles them. This avoids needing a special __scsi_release_buffers for the
case where we already have freed the request as well.
Signed-off-by:
Avoid taking the host-wide host_lock to check the per-target queue limit.
Instead we do an atomic_inc_return early on to grab our slot in the queue,
and if nessecary decrement it after finishing all checks.
Signed-off-by: Christoph Hellwig
---
drivers/scsi/scsi_lib.c| 52 ++
Signed-off-by: Christoph Hellwig
---
block/blk-mq.c |2 ++
1 file changed, 2 insertions(+)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index d81dc8b..e3284f6 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -350,6 +350,8 @@ static void blk_mq_start_request(struct request *rq, bool
last)
Seems like these counters are missing any sort of synchronization for
updates, as a over 10 year old comment from me noted. Fix this by
using atomic counters, and while we're at it also make sure they are
in the same cacheline as the _busy counters and not needlessly stored
to in every I/O complet
Avoid taking the host-wide host_lock to check the per-host queue limit.
Instead we do an atomic_inc_return early on to grab our slot in the queue,
and if nessecary decrement it after finishing all checks.
Signed-off-by: Christoph Hellwig
---
drivers/scsi/advansys.c |4 +-
drivers
Factor out a helper to set the _blocked values, which we'll reuse for the
blk-mq code path.
Signed-off-by: Christoph Hellwig
---
drivers/scsi/scsi_lib.c | 44 ++--
1 file changed, 26 insertions(+), 18 deletions(-)
diff --git a/drivers/scsi/scsi_lib.c b/
This allows to requeue a request that has been accepted by ->queue_rq
earlier. This is needed by the SCSI layer in various error conditions.
The existing internal blk_mq_requeue_request is renamed to
__blk_mq_requeue_request as it is a lower level building block for this
funtionality.
Signed-off
Signed-off-by: Christoph Hellwig
---
block/blk-core.c | 11 ---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/block/blk-core.c b/block/blk-core.c
index 4cd5ffc..47af781 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -163,9 +163,14 @@ static void blk_delay_work(s
Calling blk_end_request directly with the helpers to get the right amount
will make the conversion to blk-mq easier as we only have one place to
switch between the different completion functions. It also makes the
intention a little more clear to me, but that's a minor side effect.
Signed-off-by:
Signed-off-by: Christoph Hellwig
---
block/blk-mq.c |4 ++--
drivers/block/virtio_blk.c |4 ++--
include/linux/blk-mq.h |2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 9e13761..6f04dda 100644
--- a/block/blk-m
We'll need this for now when scsi is built as a module. Eventually
I hope to be able to move it to a higher level API intead.
Signed-off-by: Christoph Hellwig
---
block/blk-mq.c |1 +
1 file changed, 1 insertion(+)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 6f04dda..4408c70 100644
Add support for using the blk-mq code to submit requests to SCSI
drivers. There is very little blk-mq specific code, because we
try to push most things out to the block layer.
Based on the earlier scsi-mq prototype by Nicholas Bellinger, although
not a whole lot of actual code is left.
Not-quite
Signed-off-by: Christoph Hellwig
---
drivers/scsi/virtio_scsi.c |2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/scsi/virtio_scsi.c b/drivers/scsi/virtio_scsi.c
index 5ec4a73..98469cd 100644
--- a/drivers/scsi/virtio_scsi.c
+++ b/drivers/scsi/virtio_scsi.c
@@ -680,6 +680,7 @@ stat
Bedides a simpler and cleared interface this also allows to initialize the
flush_rq properly. The interface for that is still a bit messy as we don't
have a hw_ctx available for the flush request, but that's something that
should be fixable with a little work once the demand arises.
Signed-off-by
We need this as a workaround for the scsi midlayer, should be fixed in
a nicer way eventually.
---
block/blk-mq.c |6 ++
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 4408c70..4950f8e 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@
Signed-off-by: Christoph Hellwig
---
drivers/scsi/iscsi_tcp.c |1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c
index add6d15..44aae3d 100644
--- a/drivers/scsi/iscsi_tcp.c
+++ b/drivers/scsi/iscsi_tcp.c
@@ -957,6 +957,7 @@ static struct sc
Commit 18741986 inadvertently changed the rq flush insertion
from a head to a tail insertion. Fix that back up.
Signed-off-by: Mike Snitzer
Signed-off-by: Jens Axboe
---
block/blk-flush.c | 11 +++
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/block/blk-flush.c b/block
Make sure we only have the logic for requeing commands in one place.
Signed-off-by: Christoph Hellwig
---
drivers/scsi/scsi.c | 36 +---
drivers/scsi/scsi_lib.c |9 ++---
2 files changed, 19 insertions(+), 26 deletions(-)
diff --git a/drivers/scsi/s
Instead of letting the ULD play games with the prep_fn move back to
the model of a central prep_fn with a callback to the ULD. This
already cleans up and shortens the code by itself, and will be required
to properly support blk-mq in the SCSI midlayer.
Signed-off-by: Christoph Hellwig
---
drive
Now that scsi doesn't use it anymore there's no user left.
Signed-off-by: Christoph Hellwig
---
block/blk-core.c | 11 ++-
block/blk-settings.c | 17 -
include/linux/blkdev.h |3 ---
3 files changed, 2 insertions(+), 29 deletions(-)
diff --git a/block/blk
This will have to be funnelled to blk-mq directly, but skip it for now.
Signed-off-by: Christoph Hellwig
---
drivers/scsi/scsi.c |2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index 7672371..22af3d3 100644
--- a/drivers/scsi/scsi.
Signed-off-by: Christoph Hellwig
---
drivers/scsi/scsi_lib.c | 67 ---
include/linux/blk-mq.h |3 +++
2 files changed, 25 insertions(+), 45 deletions(-)
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 836f197..e6d87e3 100644
I'd like to repost the current state of the scsi multiqueue work. This
version has shown stable under various loads and is getting close to
feature complete. So far we see it improving the IOPS over the old code
up to 30% and maxing out the current test hardware, so we will have to
test on bigger
This gives drivers an easy way to free any ressources allocated in
->init_request.
Signed-off-by: Christoph Hellwig
---
block/blk-mq.c | 18 +-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index c2ce99b..c7e723e 100644
--- a/bloc
Signed-off-by: Christoph Hellwig
---
drivers/ata/ata_piix.c |1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
index 6334c8d..df00cef 100644
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -1068,6 +1068,7 @@ static u8 piix_vmw_bmdma
Btw, this is also available from
git://git.infradead.org/users/hch/scsi.git#scsi-mq-wip.3
for those who prefer a git tree.
This work was sponsored by the ION division of Fusion IO.
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...
Il 17/03/2014 06:32, Nicholas A. Bellinger ha scritto:
> + if (vq->iov[0].iov_len == sizeof(v_req_pi)) {
> + req = (unsigned char *)&v_req_pi;
> + target = &v_req_pi.lun[1];
> + req_size = sizeof(v_req_pi);
> +
If protection is involved, iSER target must wait for
completion of RDMA_READ before sending SCSI response.
So we must consider that when calculating post_send_buf_count
additions, also when processing good/error completions.
Signed-off-by: Sagi Grimberg
---
drivers/infiniband/ulp/isert/ib_isert.
Hey Nic,
So here are a couple of fixes for iSER target DIF on top of latest
for-next for 3.15.
Patch #1 fixes suppressed completions for REG_SIG_MR work requests.
Patch #2 fixes accounting of post_send_buf_count when RDMA_READs may
get a completion (required in the DIF case).
Patch #3 moves the
As REG_SIG_MR work request and it's LOCAL_INVALIDATE are
not accounted in post_send_buf_count we must color these
with ISER_FASTREG_LI_WRID in order to process their error
completions when the QP flushes.
Signed-off-by: Sagi Grimberg
---
drivers/infiniband/ulp/isert/ib_isert.c |2 ++
1 files
Some transports (iSCSI/iSER/SRP/FC) support INSERT/STRIP
capabilities while other transports like loopback/vhost-scsi
currently don't support these operations (maybe will never do)
These transports will set protection-passthrough-only
(prot_pto) bit in the se_cmd structure.
Signed-off-by: Sagi Gri
Remove code duplication from RDMA_READ and RDMA_WRITE
completions that do basically the same check.
Signed-off-by: Sagi Grimberg
---
drivers/infiniband/ulp/isert/ib_isert.c | 115 +-
1 files changed, 50 insertions(+), 65 deletions(-)
diff --git a/drivers/infiniband/
On Wed, Mar 5, 2014 at 7:43 PM, Sagi Grimberg wrote:
>
> iSCSI needs to be at least aware that a task involves protection
> information. In case it does, after the transaction completed
> libiscsi will ask the transport to check the protection status
> of the transaction.
>
> Unlike transport erro
77 matches
Mail list logo