On 01/23/2015 06:01 PM, Christoph Hellwig wrote:
On Fri, Jan 23, 2015 at 04:58:52PM +, brace wrote:
I made your requested changes. Do you want me to just send those up or the
whole set up again?
Tomas Henzl asked me to add a workqueue change also...
I have rebased the patch on top of
On Fri, Jan 23, 2015 at 04:58:52PM +, brace wrote:
I made your requested changes. Do you want me to just send those up or the
whole set up again?
Tomas Henzl asked me to add a workqueue change also...
Just resend the whole series, looks like you're using git-end-email
already.
--
To
Performance enhancement. Remove spin_locks from the driver.
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c | 39 +--
drivers/scsi/hpsa.h |3 +--
2 files changed, 6 insertions(+), 36
From: Stephen Cameron stephenmcame...@gmail.com
No need to check whether interrupt pending for MSI(X) and
conversely, no need to check whether MSI(X) interrupts are
being used when checking if interrupts are pending.
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Don Brace
When using the ioaccel submission methods, requests destined for RAID volumes
are sometimes diverted to physical devices. The OS has no or limited
knowledge of these physical devices, so it is up to the driver to avoid
pushing the device too hard. It is better to honor the physical device queue
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.h |8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/scsi/hpsa.h b/drivers/scsi/hpsa.h
index 1856445..aa6cb0b 100644
--- a/drivers/scsi/hpsa.h
+++
Instead of kicking the commands all the way back to the mid
layer, use a work queue. This enables having a mechanism for
the driver to be able to resubmit the commands down the normal
raid path without turning off the ioaccel feature entirely
whenever an error is encountered on the ioaccel path,
From: Stephen Cameron stephenmcame...@gmail.com
We need to reserve some commands for device rescans,
aborts, and the pass through ioctls, etc. so we cannot
give them all to the scsi mid layer.
This is in preparation for removing cmd_special_alloc and
cmd_special_free so that we can stop queuing
From: Webb Scales web...@hp.com
Encapsulate the conditional predicate which tests for legacy controllers
in a separate function and rework the code comments.
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Webb Scales web...@hp.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
From: Robert Elliott elli...@hp.com
Make the function name more descriptive. We use more than
one interrupt.
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Robert Elliott elli...@hp.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c | 11 ++-
1 file
From: Robert Elliott elli...@hp.com
Partial allocation failure wasn't handled correctly
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Robert Elliott elli...@hp.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c |6 +-
1 file changed, 5 insertions(+), 1
From: Stephen Cameron stephenmcame...@gmail.com
Cleanup comments to be more specific. Make messages more
informational.
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Robert Elliott elli...@hp.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c | 21
From: Robert Elliott elli...@hp.com
Return the actual error code instead of a generic error code.
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Robert Elliott elli...@hp.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c |2 +-
1 file changed, 1
From: Robert Elliott elli...@hp.com
Enhance error reporting.
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Robert Elliott elli...@hp.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c |4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git
From: Stephen Cameron stephenmcame...@gmail.com
The original reasoning behind doing this was faulty. An error
of some sort would be encountered, accelerated i/o would be
disabled for that logical drive, the command would be kicked
back out to the SCSI midlayer for a retry, and since i/o
By not doing maintaining a list of queued commands, we can eliminate some spin
locking in the main i/o path and gain significant improvement in IOPS. Remove
the queuing code and the code that calls it; remove now-unused interrupt code;
remove DIRECT_LOOKUP_BIT.
Now that the passthru commands
From: Stephen Cameron stephenmcame...@gmail.com
Factor out the bottom part of the queuecommand function
which is the part that builds commands for submitting down
the normal' RAID stack path of a Smart Array.
Need to factor this out to improve how commands that
were initially sent down one of
From: Webb Scales web...@hp.com
This means changing the allocator to reference count commands.
The reference count is now the authoritative indicator of whether a
command is allocated or not. The h-cmd_pool_bits bitmap is now
only a heuristic hint to speed up the allocation process, it is no
From: Stephen Cameron stephenmcame...@gmail.com
We have commands reserved for internal use.
This is laying the groundwork for removing the internal
queue of commands from the driver so that the locks that
protect that queue may be removed.
Reviewed-by: Scott Teel scott.t...@pmcs.com
From: Robert Elliott elli...@hp.com
If hpsa_allocate_cmd_pool failed, we were calling two functions unnecessarily:
hpsa_free_sg_chain_blocks(h);
hpsa_free_cmd_pool(h);
This didn't cause any problem, as those functions can tolerate being called
when what they free hasn't been allocated
From: Robert Elliott elli...@hp.com
Empirically, this improves performance slightly (~2% max IOPS) by
allowing cmd_alloc to remember where it left off searching for
free commands between calls instead of always starting its search
at command 0.
Reviewed-by: Scott Teel scott.t...@pmcs.com
From: Webb Scales web...@hp.com
Hoist the conditional out of do_not_scan_if_controller_locked_up() and
place it in the caller (this improves the code structure, making it
more consistent with other uses and enabling tail-call optimization);
rename the function to hpsa_scan_complete(), and use it
From: Robert Elliott elli...@hp.com
Detect failues when attempting to change controller to use simple
or performant transport modes (mode change ack) rather than just
proceeding ahead after timeouts.
Return values are added to:
hpsa_put_ctlr_into_performant_mode
From: Stephen Cameron stephenmcame...@gmail.com
Printing the address of the command pointer is of little value, change
to print the CDB.
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c | 29 -
1 file
From: Stephen Cameron stephenmcame...@gmail.com
Acking controller events on controllers that do not support
it can cause such controllers to lock up.
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Joe Handzik joseph.t.hand...@hp.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
From: Stephen Cameron stephenmcame...@gmail.com
In set_encrypt_ioaccel2() and in hpsa_scsi_ioaccel_raid_map
there were BUG_ONs that looked like this:
BUG_ON(!(dev-offload_config dev-offload_enabled));
But, In hpsa_ack_ctlr_events() we have this,
/* Stop sending new RAID
From: Stephen Cameron stephenmcame...@gmail.com
Performance tweak, avoid unnecessary function calls.
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c |8 +---
drivers/scsi/hpsa.h |5 +
2 files changed, 6
Add in P840ar model name for gen9
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c |2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index 6568da5..15ef65c 100644
---
Add in gen9 controller model names
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c | 26 +-
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index
From: Stephen Cameron stephenmcame...@gmail.com
There's no reason for it to be a void *, it should be a struct scsi_cmnd *
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c |6 +++---
drivers/scsi/hpsa_cmd.h |2 +-
2
From: Webb Scales web...@hp.com
Move the code which sets up the SG descriptor out of hpsa_scatter_gather()
and into a subroutine where it can be reused (in the next patch). The Ext
field is now assigned unconditionally: this makes the refactor much simpler,
but more importantly it removes a
From: Stephen Cameron stephenmcame...@gmail.com
In the code that translates logical drive LBAs to physical
drive LBAs if we overflow the raid map disk data array we
will get the wrong answers. We do not expect that to happen,
but best to be on the safe side and guard against it anyway.
From: Stephen Cameron stephenmcame...@gmail.com
Command allocation is the thing that takes the longest in the main i/o
path, so check for controller lockup immediately after this to prevent
submitting commands to locked up controller as much as possible.
Reviewed-by: Scott Teel
This patch set is based on Linus's tree.
The changes are:
- correct sparse warnings
- correct memory leaks
- correct kdump issues
- correct queue depth updates
- cleanup function return values
- cleanup and enhance messages
- cleanup and enhance error handling
- minor code refactoring
-
Correct endiness issues reported by sparse. SA controllers are
little endian. This patch ensures endiness correctness.
Signed-off-by: Don Brace don.br...@pmcs.com
Reviewed-by: Scott Teel scott.t...@pmcs.com
Reviewed-by: Webb Scales web...@hp.com
---
drivers/scsi/hpsa.c | 275
From: Tomas Henzl the...@redhat.com
There is a potential memory leak in hpsa_kdump_hard_reset_controller.
Reviewed-by: Don Brace don.br...@pmcs.com
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Tomas Henzl the...@redhat.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
From: Robert Elliott elli...@hp.com
If the board ID lookup function fails, return the return
code rather than return -ENODEV.
The only board ID failure reason right now is -ENODEV,
so this just provides more informative prints in kdump
and adapts to future changes.
Tested with error injection
From: Robert Elliott elli...@hp.com
In MSI and MSI-X mode, where hpsa asks for more than one interrupt,
hpsa_request_irqs forgets if the first request_irq call failed
if later ones succeed.
It needs to exit the loop on any failure rather than continue,
freeing all irqs that were requested until
From: Robert Elliott elli...@hp.com
Change the function names to have hpsa prefix.
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Robert Elliott elli...@hp.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c | 43 ++-
1
From: Tomas Henzl the...@redhat.com
Sometimes when the card is restarted it may cause -
irq 16: nobody cared (try booting with the irqpoll option)
that is likely caused so, that the card, after the hard reset
finishes, pulls on the irq. Disabling the ints before or after
the
Change how SA controllers are reset by changing PCI power levels.
The hpsa driver was finding the PCI_PM_CTRL_STATE_MASK offset
then reading/writing a bitmask to change the power state. There
are kernel functions that do the same operations. Better to use
the kernel functions.
Signed-off-by: Don
From: Robert Elliott elli...@hp.com
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Robert Elliott elli...@hp.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c |8 ++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/hpsa.c
From: Robert Elliott elli...@hp.com
HP now uses RAID-6 rather than RAID-ADG (Advanced Data Guarding)
as the marketing name for our implementation of RAID-6.
The driver considers RAID-1 and RAID-1+0 to be the same level, and
considers RAID-1ADM and RAID-1+0ADM to be the same level. Parenthesis
We change drive queue depths to match drive reported queue depths.
The name of the SML function was changed from scsi_adjust_queue_depth
changed to scsi_change_queue_depth.
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c | 16
From: Robert Elliott elli...@hp.com
There is nothing worrisome about the Waiting for controller to
respond to no-op print, so use dev_info rather than dev_warn.
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Robert Elliott elli...@hp.com
Signed-off-by: Don Brace don.br...@pmcs.com
From: Fabian Frederick f...@skynet.be
Remove unused variable in hpsa_free_cmd_pool.
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Fabian Frederick f...@skynet.be
Acked-by: Don Brace don.br...@pmcs.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c |4 ++--
From: Robert Elliott elli...@hp.com
Return the real reason for kdump_hard_reset failure rather
than change them all to -ENODEV.
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Robert Elliott elli...@hp.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c |5
From: Robert Elliott elli...@hp.com
The queue depth printed at startup is in decimal, so
shouldn't have a 0x prefix.
Reviewed-by: Scott Teel scott.t...@pmcs.com
Signed-off-by: Robert Elliott elli...@hp.com
Signed-off-by: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c |2 +-
1 file
James Bottomley james.bottom...@hansenpartnership.com writes:
On Fri, 2015-01-23 at 05:17 -0800, Christoph Hellwig wrote:
On Fri, Jan 23, 2015 at 01:24:15PM +1030, Rusty Russell wrote:
The correct fix is to turn try_module_get() into __module_get(), and
always do the module_put().
Is this
Signed-off-by: Bart Van Assche bart.vanass...@sandisk.com
---
drivers/scsi/aacraid/aachba.c | 17 +
1 file changed, 5 insertions(+), 12 deletions(-)
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
index b32e77d..5ade84a 100644
---
Signed-off-by: Bart Van Assche bart.vanass...@sandisk.com
Cc: Adaptec OEM Raid Solutions aacr...@adaptec.com
---
drivers/scsi/dpt_i2o.c | 21 ++---
1 file changed, 6 insertions(+), 15 deletions(-)
diff --git a/drivers/scsi/dpt_i2o.c b/drivers/scsi/dpt_i2o.c
index 0bf9769..9bab86c
The SCSI core never sets sc_data_direction to DMA_BIDIRECTIONAL.
Hence remove the code that tests for this value.
Signed-off-by: Bart Van Assche bart.vanass...@sandisk.com
Cc: Dario Ballabio ballabio_da...@emc.com
---
drivers/scsi/eata.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
The SCSI core never sets sc_data_direction to DMA_BIDIRECTIONAL.
Hence remove the code that tests for this value.
Signed-off-by: Bart Van Assche bart.vanass...@sandisk.com
Cc: Don Brace don.br...@pmcs.com
---
drivers/scsi/hpsa.c | 18 --
1 file changed, 18 deletions(-)
diff
The SCSI core never sets sc_data_direction to DMA_BIDIRECTIONAL.
Hence remove the code that tests for this value.
Signed-off-by: Bart Van Assche bart.vanass...@sandisk.com
Cc: Adam Radford linuxr...@lsi.com
---
drivers/scsi/3w-9xxx.c | 6 ++
1 file changed, 2 insertions(+), 4 deletions(-)
The SCSI core never sets sc_data_direction to DMA_BIDIRECTIONAL.
Hence remove the code that tests for this value.
Signed-off-by: Bart Van Assche bart.vanass...@sandisk.com
---
drivers/scsi/53c700.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/scsi/53c700.c
The SCSI core never sets sc_data_direction to DMA_BIDIRECTIONAL.
Hence remove the code that tests for this value.
Signed-off-by: Bart Van Assche bart.vanass...@sandisk.com
---
drivers/scsi/mvumi.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/scsi/mvumi.c b/drivers/scsi/mvumi.c
Signed-off-by: Bart Van Assche bart.vanass...@sandisk.com
---
Documentation/DMA-API-HOWTO.txt | 6 +++---
Documentation/scsi/scsi_mid_low_api.txt | 5 +++--
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/Documentation/DMA-API-HOWTO.txt b/Documentation/DMA-API-HOWTO.txt
Since SG_SCSI_RESET causes a task management function to be sent
and since LLDs only check the sc_data_direction field inside the
queueucommand callback function, the sc_data_direction member
does not have to be set here. Hence remove the sc_data_direction
assignment.
Signed-off-by: Bart Van
Signed-off-by: Bart Van Assche bart.vanass...@sandisk.com
---
drivers/scsi/sg.c | 17 +
1 file changed, 1 insertion(+), 16 deletions(-)
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index b14f64c..a668c88 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -763,7
Signed-off-by: Bart Van Assche bart.vanass...@sandisk.com
Cc: Brian King brk...@linux.vnet.ibm.com
Cc: Nathan Fontenot nf...@linux.vnet.ibm.com
---
drivers/scsi/ibmvscsi/ibmvscsi.c | 10 ++
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c
The code that could set sc_data_direction to DMA_BIDIRECTIONAL has
been removed eight years ago. Hence remove the code that handles
this case. See also patch unify SCSI_IOCTL_SEND_COMMAND implementations
(commit 21b2f0c803ad).
Signed-off-by: Bart Van Assche bart.vanass...@sandisk.com
Cc: Don
Signed-off-by: Bart Van Assche bart.vanass...@sandisk.com
---
drivers/scsi/sym53c8xx_2/sym_glue.c | 10 ++
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/scsi/sym53c8xx_2/sym_glue.c
b/drivers/scsi/sym53c8xx_2/sym_glue.c
index 5d00e51..c33c697 100644
---
-by: Yaniv Gardi yga...@codeaurora.org
This patch became commit 8805ccd069b7 (ufs-qcom-ice: add Inline Crypto
Engine (ICE) support for UFS) in today's linux-next (ie,
next-20150123). I noticed because a script I use to check linux-next
spotted a problem with it.
---
drivers/scsi/ufs/Kconfig
On Fri, Jan 23, 2015 at 01:05:30PM +0100, Bart Van Assche wrote:
There is some confusion in the SCSI core and in SCSI LLDs around the
meaning of sc_data_direction and whether or not this member can have the
value DMA_BIDIRECTIONAL. Clear up this confusion. The patches in this
series are:
I
On Fri, Jan 23, 2015 at 01:24:15PM +1030, Rusty Russell wrote:
The correct fix is to turn try_module_get() into __module_get(), and
always do the module_put().
Is this really safe? __module_get sais it needs a non-zero refcount
to start with, but scsi_device_get is the only thing every
On Jan 23 Bart Van Assche wrote:
The SCSI core never sets sc_data_direction to DMA_BIDIRECTIONAL.
Signed-off-by: Bart Van Assche bart.vanass...@sandisk.com
Cc: Stefan Richter stef...@s5r6.in-berlin.de
---
drivers/firewire/sbp2.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Signed-off-by: Tomas Henzl the...@redhat.com
---
drivers/scsi/hpsa.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index 909562c09f..7fdc4d2a91 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -7069,13 +7069,12 @@
hpsa driver uses a shared wq, max sleep time in function spent
hpsa_wait_for_clear_event_notify_ack may take up to 20sec
and that is too much for a shared workqueue.
This patch takes the easiest approach and just creates a
driver's own workqueue.
Signed-off-by: Tomas Henzl the...@redhat.com
---
On 15-01-23 01:07 PM, Bart Van Assche wrote:
Signed-off-by: Bart Van Assche bart.vanass...@sandisk.com
Acked-by: Douglas Gilbert dgilb...@interlog.com
---
drivers/scsi/sg.c | 17 +
1 file changed, 1 insertion(+), 16 deletions(-)
diff --git a/drivers/scsi/sg.c
The SCSI core never sets sc_data_direction to DMA_BIDIRECTIONAL.
Signed-off-by: Bart Van Assche bart.vanass...@sandisk.com
Cc: Michael Reed m...@sgi.com
---
drivers/scsi/qla1280.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/qla1280.c
Signed-off-by: Bart Van Assche bart.vanass...@sandisk.com
Cc: Finn Thain fth...@telegraphics.com.au
Cc: Michael Schmitz schmitz...@gmail.com
---
drivers/scsi/ncr53c8xx.c | 7 +++
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/scsi/ncr53c8xx.c b/drivers/scsi/ncr53c8xx.c
71 matches
Mail list logo