On Wed, 2017-05-10 at 16:06 +0200, h...@lst.de wrote:
> On Mon, May 08, 2017 at 11:46:14PM -0700, Nicholas A. Bellinger wrote:
> > That said, simply propagating up q->limits.max_write_zeroes_sectors as
> > dev_attrib->unmap_zeroes_data following existing code still looks like
> > the right thing
From: Long Li
Lower layer driver may not initialize private data before use. Zero them
out to prevent use of stale data.
Signed-off-by: Long Li
---
drivers/scsi/scsi_lib.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git
On 2017-05-10 03:53 AM, Johannes Thumshirn wrote:
If the list search in sg_get_rq_mark() fails to find a valid request, we
return a bogus element. This then can later lead to a GPF in sg_remove_scat().
So don't return bogus Sg_requests in sg_get_rq_mark() but NULL in case the
list search
The current code is not correctly calculating the req_lim_delta.
We want to make sure vscsi->credit is always incremented when
we do not send a response for the scsi op. Thus for the case where
there is a successfully aborted task we need to make sure the
vscsi->credit is incremented.
v2 - Moves
Change driver version to 11.2.0.14
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
---
drivers/scsi/lpfc/lpfc_version.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/lpfc/lpfc_version.h
Code review of NVMEI's FC_PORT_ROLE_NVME_DISCOVERY
looked wrong.
Discussions with storage architecture team clarified
NVMEI's audit of the PRLI response port roles. Following up
discussion with code review showed a few minor corrections
were required - especially in anticipation of NVME auto
Using 2048 byte buffer and onle 128 bytes is needed.
Create nee LFPC_NVMET_DATA_BUF_SIZE define to use
for NVMET RQ/MRQs.
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
---
drivers/scsi/lpfc/lpfc.h | 1 +
Previous logic would just drop the IO
Added logic to queue the IO to wait for an IO context resource from an IO
thats already in progress.
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
---
drivers/scsi/lpfc/lpfc.h | 1 +
When the driver send the RPA command, it does not
send supported FC4 Type NVME to the management server.
Encode NVME (type x28) in the AttribEntry in the
RPA command.
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
---
Currently IO resources are mapped 1 to 1 with RQ buffers posted
Added logic to separate RQE buffers from IO op resources
(sgl/iocbq/context). During initialization, the driver will determine
how many SGLs it will allocate for NVMET (based on what the
firmware reports) and associate a NVMET IOCBq
Added code to support Cisco MDS loopback diagnostic. The diagnostics
run various loopbacks including one which loops-back frame through
the driver.
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
---
drivers/scsi/lpfc/lpfc.h |
When unloading and reloading the driver, the driver
fails to recreate the lpfc root inode in the debugfs tree.
The driver is incorrectly removing the lpfc root inode
in lpfc_debugfs_terminate in the first driver instance that
unloads and then sets the lpfc_debugfs_root global parameter
to NULL.
Too many work items being processed in IRQ context take a lot
of CPU time and cause problems.
With a recent change, we get out of the ISR after hitting entry_repost
work items on a queue. However, the actual values for entry repost are
still high. EQ is 128 and CQ is 128, this could translate
During driver boot, a latency in the NVMET driver
side causes the incoming NVMEI PRLI to get rejected by the
NVMET driver. When this happens, the NVMEI driver runs
out of PRLI retries. Bouncing the link does not fix the
situation.
If the NVMEI driver decides, on PRLI completion
failures, to
After running IOPS test for 30 second we get
kernel:NMI watchdog: Watchdog detected hard LOCKUP on cpu 0
The driver is speend too much time in it's ISR.
In ISR EQ and CQ processing routines, if we hit the entry_repost
numbers of EQE/CQEs just break out of the routine as opposed to
hitting the
More debug messages added for nvme statistics.
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
---
drivers/scsi/lpfc/lpfc_attr.c| 24 -
drivers/scsi/lpfc/lpfc_debugfs.c | 27 +--
Large block writes to the nvme target were failing because
the default number of RQs posted was insufficient.
Expand the NVMET RQs to 2048 RQEs and ensure a minimun of 2048
RQEs are posted, no matter how many MRQs are configured.
Signed-off-by: Dick Kennedy
This patch set provides a number of bug fixes, code cleanups, and error
handling, mostly in the nvme area of lpfc.
There is one new feature in the series to add MDS diagnostics support
The patches were cut against the Martin's 4.12/scsi-fixes tree.
There are no outside dependencies. The patches
With 255 vports created a link trasition can casue a crash.
When going through discovery after a link bounce the driver is using
rpis before the cmd FCOE_POST_HDR_TEMPLATES completes. By doing that
the next rpi bumps the rpi range out of the boundary.
The fix it to increment the next_rpi only
The driver panic when using the els_wq during port reset.
Check for NULL els_wq before dereferencing.
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
---
drivers/scsi/lpfc/lpfc.h | 8 ++--
drivers/scsi/lpfc/lpfc_hbadisc.c
The current code is not correctly calculating the req_lim_delta.
We want to make sure vscsi->credit is always incremented when
we do not send a response for the scsi op. Thus for the case where
there is a successfully aborted task we need to make sure the
vscsi->credit is incremented.
> -Original Message-
> From: Raghava Aditya Renukunta
> [mailto:raghavaaditya.renuku...@microsemi.com]
> Sent: Wednesday, May 10, 2017 10:40 AM
> To: j...@linux.vnet.ibm.com; martin.peter...@oracle.com; linux-
> s...@vger.kernel.org
> Cc: Dave Carroll ; Gana
> -Original Message-
> From: Raghava Aditya Renukunta
> [mailto:raghavaaditya.renuku...@microsemi.com]
> Sent: Wednesday, May 10, 2017 10:40 AM
> To: j...@linux.vnet.ibm.com; martin.peter...@oracle.com; linux-
> s...@vger.kernel.org
> Cc: Dave Carroll ; Gana
> -Original Message-
> From: Raghava Aditya Renukunta
> [mailto:raghavaaditya.renuku...@microsemi.com]
> Sent: Wednesday, May 10, 2017 10:40 AM
> To: j...@linux.vnet.ibm.com; martin.peter...@oracle.com; linux-
> s...@vger.kernel.org
> Cc: Dave Carroll ; Gana
On Mon, May 08, 2017 at 11:46:14PM -0700, Nicholas A. Bellinger wrote:
> That said, simply propagating up q->limits.max_write_zeroes_sectors as
> dev_attrib->unmap_zeroes_data following existing code still looks like
> the right thing to do.
It is not. Martin has decoupled write same/zeroes
On Wed, 2017-05-10 at 15:24 +0200, Hannes Reinecke wrote:
> sg_io() is using msecs_to_jiffies() to convert a passed in timeout
> value (in milliseconds) to a jiffies value. However, if the value
> is too large msecs_to_jiffies() will return MAX_JIFFY_OFFSET, which
> will be truncated to -2 and
sg_io() is using msecs_to_jiffies() to convert a passed in timeout
value (in milliseconds) to a jiffies value. However, if the value
is too large msecs_to_jiffies() will return MAX_JIFFY_OFFSET, which
will be truncated to -2 and cause the timeout to be set to 1.3
_years_. Which is probably too
On 05/10/2017 09:53 AM, Johannes Thumshirn wrote:
> If the list search in sg_get_rq_mark() fails to find a valid request, we
> return a bogus element. This then can later lead to a GPF in sg_remove_scat().
>
> So don't return bogus Sg_requests in sg_get_rq_mark() but NULL in case the
> list
If the list search in sg_get_rq_mark() fails to find a valid request, we
return a bogus element. This then can later lead to a GPF in sg_remove_scat().
So don't return bogus Sg_requests in sg_get_rq_mark() but NULL in case the
list search doesn't find a valid request.
Signed-off-by: Johannes
On 05/10/2017 09:41 AM, Johannes Thumshirn wrote:
> If the list search in sg_get_rq_mark() fails to find a valid request, we
> return a bogus element. This then can later lead to a GPF in sg_remove_scat().
>
> So don't return bogus Sg_requests in sg_get_rq_mark() but NULL in case the
> list
If the list search in sg_get_rq_mark() fails to find a valid request, we
return a bogus element. This then can later lead to a GPF in sg_remove_scat().
So don't return bogus Sg_requests in sg_get_rq_mark() but NULL in case the
list search doesn't find a valid request.
Signed-off-by: Johannes
Added info and error messages in controller reset function to log
information about the status of the IOP/SOFT reset.
Signed-off-by: Raghava Aditya Renukunta
Reviewed-by: David Carroll
---
Changes in V2:
None
Added function that waits with a timeout for the ctrl to be up and running
after triggering an IOP reset. Also removed 30 sec sleep as it is not
needed.
Signed-off-by: Raghava Aditya Renukunta
Reviewed-by: David Carroll
---
The driver can now trigger IOP reset with a single reset mask. Removed
code that retrieves a reset_mask from the firmware.
Signed-off-by: Raghava Aditya Renukunta
Reviewed-by: David Carroll
---
Changes in V2:
None
Remove reference to Series-9 HBA and created arc ctrl check function.
Signed-off-by: Prasad B Munirathnam
Signed-off-by: Raghava Aditya Renukunta
Reviewed-by: David Carroll
---
Changes in V2:
Now the driver issues a soft reset and waits for the controller to be up
and running by periodically checking on the status of the controller
health registers. Also prevents ARC adapters from issuing soft reset if
IOP resets failed.
Signed-off-by: Raghava Aditya Renukunta
Make sure that IOP and SOFT reset are enabled for both for both
arc and hba1000 controllers.
Signed-off-by: Raghava Aditya Renukunta
Reviewed-by: David Carroll
---
Changes in V2:
None
drivers/scsi/aacraid/linit.c | 77
Made sure that ioctl commands return in case of a controller reset.
Signed-off-by: Raghava Aditya Renukunta
---
Changes in V2:
Removed incorrect up
Cleared wait flag once event is received not before
drivers/scsi/aacraid/commsup.c | 25
Log the location of the scsi cmds before triggering a reset. This
information is useful for debugging.
Signed-off-by: Raghava Aditya Renukunta
Reviewed-by: David Carroll
---
Changes in V2:
None
drivers/scsi/aacraid/linit.c |
Removed switch case and replaced with if mask checks. Moved KERNEL_PANIC
check to when bled is less than 0.
Signed-off-by: Raghava Aditya Renukunta
Reviewed-by: David Carroll
---
Changes in V2:
None
Reworked IOP reset to remove unneeded variable and created a helper
function to notify fw of an imminent IOP reset.
Signed-off-by: Raghava Aditya Renukunta
Reviewed-by: David Carroll
---
Changes in V2:
None
The command thread checks the ctrl health periodically before sending
updates to the controller. The function that it uses is aac_check_health
which does more than get the health status.
Signed-off-by: Raghava Aditya Renukunta
Reviewed-by: David Carroll
Update the driver version to 50834
Signed-off-by: Raghava Aditya Renukunta
Reviewed-by: David Carroll
---
Changes in V2:
None
drivers/scsi/aacraid/aacraid.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git
Log the status of the controller before issuing a reset.
Signed-off-by: Raghava Aditya Renukunta
Reviewed-by: David Carroll
---
Changes in V2:
None
drivers/scsi/aacraid/linit.c | 9 +
1 file changed, 9 insertions(+)
The driver changed the DMA consistent map after consistent memory was
allocated, this invalidated the IOMMU identity mapping. The fix was to
make sure that we set the DMA consistent mask setting once depending on
the controller card.
Signed-off-by: Raghava Aditya Renukunta
The default queue depth for non NATIVE RAW disks is calculated from the
number of fibs and number of disks or a max of 256. This causes poor disk
IO performance.
The fix is to set default qd based on the type of disks
(SATA -32 and SAS -64)
Signed-off-by: Raghava Aditya Renukunta
Check health does not need to reset the ctrl but just return the
controller health status.
Signed-off-by: Raghava Aditya Renukunta
Reviewed-by: David Carroll
---
Changes in V2:
None
drivers/scsi/aacraid/commsup.c | 15
The qd for ARC Native disks is calculated by dividing the max IO 1024
by the number of disks or 256 which ever is lower. This causes poor
disk IO performance.
The fix is set the qd based on the type of disk (SAS - 64 and SATA -
32).
Signed-off-by: Raghava Aditya Renukunta
Change the completion wait time for the fibs in the reset and abort
callback from 2 minutes to 15 seconds.
2 minutes is too long for waiting for completion.
Signed-off-by: Raghava Aditya Renukunta
Reviewed-by: David Carroll
This patchset primarily focuses on tweaking and hardening the controller
reset support for both ARC and HBA1000 devices. Now the driver can only
reset the controller thru eh reset. Included a srb memory fix and pci dma
allocation fix.
Changes in V2:
- Corrected heading and description for srb
The raw srb commands do not requires memory that in the ZONE_DMA
memory space. For 32bit srb commands use GFP_DMA32 to limit the memory
to 32bit memory range (4GB).
Signed-off-by: Raghava Aditya Renukunta
---
Changes in V2:
Corrected flag name to GFP_DMA32
51 matches
Mail list logo