> > out:
> > return 0;
> > }
> > -
>
> nit: This blank should be here.
Done.
>
> > static int ufs_bsg_request(struct bsg_job *job)
> > {
> > struct ufs_bsg_request *bsg_request = job->request;
> > @@ -140,6 +137,12 @@ static int ufs_bsg_request(struct bsg_job *job)
> >
Clang warns several times in the scsi subsystem (trimmed for brevity):
drivers/scsi/hpsa.c:6209:7: warning: overflow converting case value to
switch condition type (2147762695 to 18446744071562347015) [-Wswitch]
case CCISS_GETBUSTYPES:
^
drivers/scsi/hpsa.c:6208:7: warning: ov
>
> On Fri, Jan 25, 2019 at 2:12 PM Avri Altman wrote:
> >
> > Allow to read descriptors via raw upiu. This in fact was forbidden just
> > as a precaution, as ufs-bsg actually enforces which functionality is
> > supported.
> >
> > Signed-off-by: Avri Altman
> > Reviewed-by: Christoph Hellwig
>
Clang warns that the __weak attribute is going to be ignored on
osd_root_object because it's not in the correct location (needs to be
after the type).
./include/scsi/osd_types.h:31:21: warning: 'weak' attribute only applies
to variables, functions, and classes [-Wignored-attributes]
static const s
https://bugzilla.kernel.org/show_bug.cgi?id=201609
--- Comment #4 from james.bottom...@hansenpartnership.com ---
On Sat, 2019-01-26 at 03:13 +, bugzilla-dae...@bugzilla.kernel.org
wrote:
> https://bugzilla.kernel.org/show_bug.cgi?id=201609
>
> Pablo Ruiz García (pablo.r...@gmail.com) changed:
On Sat, 2019-01-26 at 03:13 +, bugzilla-dae...@bugzilla.kernel.org
wrote:
> https://bugzilla.kernel.org/show_bug.cgi?id=201609
>
> Pablo Ruiz García (pablo.r...@gmail.com) changed:
>
>What|Removed |Added
> ---
https://bugzilla.kernel.org/show_bug.cgi?id=201609
Bart Van Assche (bvanass...@acm.org) changed:
What|Removed |Added
CC||bvanass...@acm.org
https://bugzilla.kernel.org/show_bug.cgi?id=201609
Pablo Ruiz García (pablo.r...@gmail.com) changed:
What|Removed |Added
CC||pablo.r...@gmai
On 1/26/19 9:18 AM, jianchao.wang wrote:
>
>
> On 1/26/19 6:10 AM, Florian Stecker wrote:
>>
>>
>> On 1/25/19 10:05 AM, jianchao.wang wrote:
>>>
>>>
>>> On 1/25/19 4:56 PM, Florian Stecker wrote:
On 1/25/19 4:49 AM, jianchao.wang wrote:
>
> It sounds like not so easy to trigger.
>
So far msix vectors allocation assumed it would be 1:1 with
hardware queues. However, there are several reasons why fewer
MSIX vectors may be allocated than hardware queues such as the
platform being out of vectors or adapter limits being less than
cpu count.
This patch reworks the MSIX/EQ relatio
Now that performance mods don't split resources by protocol and
enable both protocols by default, there's no reason not to enable
concurrent SCSI and NVME fc4 support.
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
Reviewed-by: Hannes Reinecke
---
drivers/scsi/lpfc/lpfc_attr.c | 4 ++--
Review of the eq coalescing logic showed the code was a bit
fragmented. Sometimes it would save/set via an interrupt max
value, while in others it would do so via a usdelay. There were
also two places changing eq delay, one place that issued mailbox
commands, and another that changed via register
Current driver uses the older IRQ API for msix allocation
Change driver to utilize pci_alloc_irq_vectors when allocation IRQ
vectors.
Make lpfc_cpu_affinity_check use pci_irq_get_affinity to
determine how the kernel mapped all the IRQs.
Remove msix_entries from SLI4 structure, replaced with
pci_
A scsi host lock is taken on every io completion to check whether
the abort handler is waiting on the io completion. This is an
expensive lock to take on all completion when rarely in an abort
condition.
Replace scsi host lock with command-specific lock. Synchronize
completion and abort paths by n
The work done to date utilized the number of present cpus when
sizing per-cpu structures. Structures should have been sized based
on the max possible cpu count.
Convert the driver over to possible cpu count for sizing allocation.
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
Reviewed-b
When the transport calls into the lpfc target to release an io job
structure, which corresponds to an exchange, and if the driver was
waiting for an exchange in order to post a previously received command
to the transport, the driver immediately takes the io job and reuses
the context for the prior
For files modifed as part of 12.2.0.0 patches, update
copyright to 2019
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
---
drivers/scsi/lpfc/lpfc.h | 2 +-
drivers/scsi/lpfc/lpfc_attr.c | 2 +-
drivers/scsi/lpfc/lpfc_crtn.h | 2 +-
drivers/scsi/lpfc/lpfc_ct.c
When driving high iop counts, auto_imax coalescing kick in and drives
the performance to extremely small iops levels.
There are two issues:
1) auto_imax is enabled by default. The auto algorithm, when iops
gets high divides the iops by the hdwq count and uses that value
to calculate EQ_Delay
The XRI get/put lists were partitioned per hardware queue. However,
the adapter rarely had sufficient resources to give a large number
of resources per queue. As such, it became common for a cpu to
encounter a lack of XRI resource and request the upper io stack to
retry after returning a BUSY condi
The conversion to enable SCSI and NVME fc4 support ran into an
issue with NPIV support. With NVME NPIV is not currently supported,
but with SCSI it was. The driver reverted to it's lowest setting
meaning NPIV with SCSI was not allowed.
Convert the NPIV checks and implementation so that SCSI can co
Various null pointer dereference and general protection fault panics
occur when there is a link bounce under load. There are a large number
of "error" message 6413 indicating "bad release".
The issues resolve to list corruptions due to missing or inconsistent
lock protection. Lockups are due to ne
The desired affinity for the hardware queue behavior is for
hdwq 0 to be affinitized with cpu 0, hdwq 1 to cpu 1, and so on.
The implementation so far does not do this if the number of
cpus is greating than the number of hardware queues (e.g. hardware
queue allocation was administratively reduced o
Update lpfc version to 12.2.0.0
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
Reviewed-by: Hannes Reinecke
---
drivers/scsi/lpfc/lpfc_version.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/lpfc/lpfc_version.h b/drivers/scsi/lpfc/lpfc_version.h
index
Currently, both nvme and fcp each have their own concept of an
io_channels, which a combination wq/cq and associated msix.
Different cpus would share an io_channel.
The driver is now moving to per-cpu wq/cq pairs and msix vectors.
The driver will still use separate wq/cq pairs per protocol on each
Both NVME and SCSI aborts are now processed off the CQ workqueue and
do not generate events for the slowpath any more.
Remove the unused event code.
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
Reviewed-by: Hannes Reinecke
---
drivers/scsi/lpfc/lpfc.h | 1 -
drivers/scsi/lp
An hba-wide lock is taken in the nvme io completion routine. The lock
covers null'ing of the nrport pointer in the cmd structure.
The nrport member isn't necessary. After extracting the pointer from
the command, the pointer was dereferenced to get the fc discovery
node pointer. But the fc discover
lpfc_nvme_prep_io_cmd() checks for null pnode, but caller
lpfc_nvme_fcp_io_submit() has already ensured it's non-null.
remove the pnode null check
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
Reviewed-by: Hannes Reinecke
---
drivers/scsi/lpfc/lpfc_nvme.c | 2 +-
1 file changed, 1 in
Currently, both NVME and SCSI get their IO buffers from separate
pools. XRI's are associated 1:1 with IO buffers, so XRI's are also
split between protocols.
Eliminate the independent pools and use a single pool. Each buffer
structure now has a common section and a protocol section. Per
protocol ro
Similar to the io execution path that reports cpu context
information the debugfs routines for cpu information needs to
be aligned with new hardware queue implementation.
Convert debugfs cnd nvme cpucheck statistics to report
information per Hardware Queue.
Signed-off-by: Dick Kennedy
Signed-off
Once the IO buff allocations were made shared, there was a single
XRI buffer list shared by all hardware queues. A single list isn't
great for performance when shared across the per-cpu hardware queues.
Create a separate XRI IO buffer get/put list for each Hardware
Queue. As SGLs and associated
Default behavior is to use the information from the upper io
stacks to select the hardware queue to use for io submission.
which typically has good cpu affinity.
However, the driver, when used on some variants of the upstream
kernel, has found queuing information to be suboptimal for FCP
or io com
Now that the lower half has much better per-cpu parallelization
using the hardware queues, the SCSI MQ support needs to be tied
into it.
The involves the following mods:
- Use the hardware queue info from the midlayer to help select the
hardware queue to utilize. This required change to the
ge
Many io statics were being sampled and saved using adapter-based
data structures. This was creating a lot of contention and cache
thrashing in the I/O path.
Move the statistics to the hardware queue data structures.
Given the per queue data structures, use of atomic types is
lessened.
Add new syf
SLI4 nvme functions are passing the SLI3 ring number when posting
wqe to hardware. This should be indicating the hardware queue to
use, not the ring number.
Replace ring number with the hardware queue that should be used.
Note: SCSI avoided this issue as it utilized an older lfpc_issue_iocb
routi
There is a extra queue and msix vector for expresslane. Now that
the driver will be doing queues per cpu this oddball queue is no
longer needed. Expresslane will utilize the normal per-cpu queues.
Updated debugfs sli4 queue output to go along with the change
Signed-off-by: Dick Kennedy
Signed-o
Update lpfc to revision 12.2.0.0
This first 22 patches in this patch set are a rework of the I/O
submission path in the driver to focus on cpu affinity. This work
raises the performance of the lpfc driver from a level of 1-2M iops
per port to numbers that have reached over 5M per port. The
modific
On 1/26/19 6:10 AM, Florian Stecker wrote:
>
>
> On 1/25/19 10:05 AM, jianchao.wang wrote:
>>
>>
>> On 1/25/19 4:56 PM, Florian Stecker wrote:
>>> On 1/25/19 4:49 AM, jianchao.wang wrote:
It sounds like not so easy to trigger.
blk_mq_dispatch_rq_list
scsi_queue_rq
On Fri, Jan 25, 2019 at 2:29 AM Asutosh Das (asd)
wrote:
>
> On 1/24/2019 10:22 PM, Evan Green wrote:
> > On Wed, Jan 23, 2019 at 11:02 PM Asutosh Das
> > wrote:
> >>
> >> Adapt to the new ICB framework for bus bandwidth voting.
> >>
> >> This requires the source/destination port ids.
> >> Also
On Fri, Jan 25, 2019 at 2:12 PM Avri Altman wrote:
>
> Allow to read descriptors via raw upiu. This in fact was forbidden just
> as a precaution, as ufs-bsg actually enforces which functionality is
> supported.
>
> Signed-off-by: Avri Altman
> Reviewed-by: Christoph Hellwig
Reviewed-by: Evan Gr
On Fri, Jan 25, 2019 at 2:12 PM Avri Altman wrote:
>
> When we had a write descriptor query upiu, we appended the descriptor
> right after the bsg request. This was fine as the bsg driver allows to
> allocate whatever buffer we needed in its job request.
>
> Still, the proper way to deliver paylo
On Fri, Jan 25, 2019 at 2:13 PM Avri Altman wrote:
>
> Add this functionality, placing the descriptor being read in the actual
> data buffer in the bio.
>
> That is, for both read and write descriptors query upiu, we are using
> the job's request_payload. This in turn, is mapped back in user land
Six fixes, all of which appear to have user visible consequences. The
DMA one is a regression fix from the merge window and of the others,
four are driver specific and one specific to the target code.
The patch is available here:
git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git scsi-f
On 1/25/19 10:05 AM, jianchao.wang wrote:
On 1/25/19 4:56 PM, Florian Stecker wrote:
On 1/25/19 4:49 AM, jianchao.wang wrote:
It sounds like not so easy to trigger.
blk_mq_dispatch_rq_list
scsi_queue_rq
if (atomic_read(&sdev->device_busy) ||
scsi_device_blocked(sdev))
Looks good to me.
Acked-by: Satish Kharat
Satish Kharat
TECHNICAL LEADER.ENGINEERING
satis...@cisco.com
Tel: +1 408 526 7504
Cisco Systems, Inc.
3800 Zanker Road
SAN JOSE
95134
United States
cisco.com
Think before you print.
This email may contain confidential and privileged material for the
Hello Bean,
>
> I just reviewed your V3 patches, it is to read/write UFS descriptors by UPIU.
> Currently we can read UFS all descriptors by Sys. Now just shortage of write.
Right, but we hope to provide the full functionality in our
soon-to-be-published ufs-utils.
It will serve better whomever t
duct_rev string corresponds to this version */
#define SDEBUG_VERSION "0188" /* format to fit INQUIRY revision field */
-static const char *sdebug_version_date = "20180128";
+static const char *sdebug_version_date = "20190125";
#define MY_NAME "scsi_debug"
On Thu, 2019-01-24 at 01:13 -0500, Douglas Gilbert wrote:
> > I can replicate this crash easily. I also noticed that this crash only
> > occurs if
> > the scsi_debug driver is loaded with fake_rw=0. It does not occur with
> > fake_rw=1.
> > It seems like the following code in resp_write_same() as
On Thu, 2019-01-24 at 23:23 -0800, Himanshu Madhani wrote:
> From: Giridhar Malavali
>
> This patch fixes SRB allocation flag from GFP_KERNEL to GFP_ATOMIC, to
> prevent sleeping in IRQ context
>
> Signed-off-by: Giridhar Malavali
> Signed-off-by: Himanshu Madhani
> ---
> drivers/scsi/qla2xxx
From: Xiang Chen
Send primitive NOTIFY to SSP situation only, or it causes underflow issue
when sending IO. And also rename hisi_sas_hw.sl_notify() to hisi_sas_hw.
sl_notify_ssp().
Signed-off-by: Xiang Chen
Signed-off-by: John Garry
---
drivers/scsi/hisi_sas/hisi_sas.h | 2 +-
drivers/s
This series includes a misc assortment of fixes found during testing.
Also includes is some debugfs tidy-up and a patch missed from original
upstreaming.
John Garry (5):
scsi: hisi_sas: No need to check return value of debugfs_create
functions
scsi: hisi_sas: Fix type casting and missing
From: Xiang Chen
When issing a hardreset to a SATA device when running IO, it is possible
that abnormal CQs of the device are returned. Then enter error handle, it
doesn't enter function hisi_sas_abort_task() as there is no timeout IO,
and it doesn't set device as HISI_SAS_DEV_EH. So when hardres
From: Luo Jiaxing
The SAS controller cannot support a programmed minimum linkrate of
> 1.5G (it will always negotiate to 1.5G at least), so just reject it.
This solves a strange situation where the PHY negotiated linkrate may
be less than the programmed minimum linkrate.
Signed-off-by: Luo Jiax
Sparse can detect some type casting issues in the debugfs code, so
fix it up.
Also a missing static qualifier is added to hisi_sas_debugfs_to_reg_name().
Signed-off-by: John Garry
---
drivers/scsi/hisi_sas/hisi_sas.h | 4 ++--
drivers/scsi/hisi_sas/hisi_sas_main.c | 21 +++
Sparse detected some problems in the driver, so tidy them up.
Signed-off-by: John Garry
---
drivers/scsi/hisi_sas/hisi_sas_main.c | 33 ++---
1 file changed, 22 insertions(+), 11 deletions(-)
diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c
b/drivers/scsi/hisi_sas
From: Xiang Chen
When injecting 2 bit ECC error, it will cause fatal AXI interrupts. Before
the recovery of SAS controller reset, the internal of SAS controller is in
error. If CQ interrupts return at the time, actually it is exception CQ
interrupt, and it may cause resource release in disorder.
This call must have been missed when I reworked the debugfs feature
for upstreaming, so add it back.
Signed-off-by: John Garry
---
drivers/scsi/hisi_sas/hisi_sas_main.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c
b/drivers/scsi/hisi_sas/hisi_sas_mai
From: Xiaofei Tan
Hot-plugging SAS wire of direct hard disk backplane may cause
disk lost. We have done this test with several types of SATA disk from
different venders, and only two models from Seagate has this problem,
ST4000NM0035-1V4107 and ST3000VM002-1ET166.
The root cause is that the disk
From: Xiang Chen
Actually in function hisi_sas_alloc(), parameter shost is not used, so
remove it.
Signed-off-by: Xiang Chen
Signed-off-by: John Garry
---
drivers/scsi/hisi_sas/hisi_sas.h | 2 +-
drivers/scsi/hisi_sas/hisi_sas_main.c | 4 ++--
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 2
When calling debugfs functions, there is no need to ever check the return
value. The function can work or not, but the code logic should never do
something different based on this.
Signed-off-by: John Garry
---
drivers/scsi/hisi_sas/hisi_sas.h | 1 +
drivers/scsi/hisi_sas/hisi_sas_main.c |
From: Luo Jiaxing
Some sizes we allocate for debugfs structure is incorrect, so fix them.
Signed-off-by: Luo Jiaxing
Signed-off-by: John Garry
---
drivers/scsi/hisi_sas/hisi_sas_main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.
From: Luo Jiaxing
This patch create debugfs file for ITCT and add file operations.
Signed-off-by: Luo Jiaxing
Signed-off-by: John Garry
---
drivers/scsi/hisi_sas/hisi_sas_main.c | 33 +
1 file changed, 33 insertions(+)
diff --git a/drivers/scsi/hisi_sas/hisi_s
A NULL-pointer dereference was introduced for TMF SSP commands from the
upstreaming reworking.
Fix this by relocating the scsi_get_prot_op() callsite.
Fixes: d6a9000b81be ("scsi: hisi_sas: Add support for DIF feature for v2 hw")
Signed-off-by: John Garry
---
drivers/scsi/hisi_sas/hisi_sas_v3_hw
The driver is sending a PRLI to each target port with both,
FCP _and_ NVMe enabled. The target is now free to respond with
either of those types logged in.
When evaluating the response we need to check which of the FC4
type had been logged in, and update the port properties accordingly.
Not doing s
Hi Himanshu,
a common customer figured that the current qla2xxx code wouldn't work
with direct-attached FCP SCSI devices.
I've made a quick hack to re-establish operations:
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 70c7bfa2d73c..fd4043b551a2 100644
--- a/
Hi, Avri
>Subject: [EXT] RE: [PATCH v3 0/3] scsi: ufs-bsg: Add read descriptor
>
>>
>> Avri,
>>
>> > V2->v3:
>> > Add a prep patch with write descriptor calling convention changes.
>> > Elaborate the commit log of ufs-bsg: Allow reading descriptors.
>> > Add Reviewed-by tag.
>>
>> I don't see Chri
On 1/24/2019 10:22 PM, Evan Green wrote:
On Wed, Jan 23, 2019 at 11:02 PM Asutosh Das wrote:
Adapt to the new ICB framework for bus bandwidth voting.
This requires the source/destination port ids.
Also this requires a tuple of values.
The tuple is for two different paths - from UFS master
to
On 1/24/2019 5:16 PM, Georgi Djakov wrote:
Hi Asutosh,
Thanks for the patch!
On 1/24/19 09:01, Asutosh Das wrote:
Adapt to the new ICB framework for bus bandwidth voting.
It's actually called interconnect API or interconnect framework.
Thanks! will change it.
This requires the source/des
On 1/25/19 4:56 PM, Florian Stecker wrote:
> On 1/25/19 4:49 AM, jianchao.wang wrote:
>>
>> It sounds like not so easy to trigger.
>>
>> blk_mq_dispatch_rq_list
>> scsi_queue_rq
>> if (atomic_read(&sdev->device_busy) ||
>> scsi_device_blocked(sdev))
>> ret = BLK_STS_DEV_
On 1/25/19 4:49 AM, jianchao.wang wrote:
It sounds like not so easy to trigger.
blk_mq_dispatch_rq_list
scsi_queue_rq
if (atomic_read(&sdev->device_busy) ||
scsi_device_blocked(sdev))
ret = BLK_STS_DEV_RESOURCE; scsi_end_request
69 matches
Mail list logo