On Tue, Apr 04, 2017 at 01:49:44PM +0530, Varun Prakash wrote:
> On Tue, Apr 04, 2017 at 08:46:14AM +0200, Christoph Hellwig wrote:
> > Does this one work better?
> >
>
> csiostor driver is triggering following warning during module unload.
Looks like we need to explicitly ignore the CSIO_IM_NONE
From: Xiubo Li
For each target there will be one ring, when the target number
grows larger and larger, it could eventually runs out of the
system memories.
In this patch for each target ring, currently for the cmd area
the size will be fixed to 8MB and for the data area the size
will grow from 0
From: Xiubo Li
Changed for V5:
- Rebase to the newest target-pending repository.
- Add as many comments as possbile to make the patch more readable.
- Move tcmu_handle_completions() in timeout handler to unmap thread
and then replace the spin lock with mutex lock(because the unmap_*
or zap_*
From: Xiubo Li
Currently for the TCMU, the ring buffer size is fixed to 64K cmd
area + 1M data area, and this will be bottlenecks for high iops.
The struct tcmu_cmd_entry {} size is fixed about 112 bytes with
iovec[N] & N <= 4, and the size of struct iovec is about 16 bytes.
If N == 0, the rati
Hi Hannes,
[auto build test WARNING on scsi/for-next]
[also build test WARNING on v4.11-rc5 next-20170404]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system]
url:
https://github.com/0day-ci/linux/commits/Hannes-Reinecke/scsi_error-count-medium
Johannes Thumshirn writes:
Johannes,
> sas_domain_release_transport is unused since at least v3.13, remove
> it.
Applied to 4.12/scsi-queue.
--
Martin K. Petersen Oracle Linux Engineering
Himanshu Madhani writes:
> From: Milan P Gandhi
>
> Signed-off-by: Milan P Gandhi
> Signed-off-by: Himanshu Madhani
Applied to 4.12/scsi-queue.
--
Martin K. Petersen Oracle Linux Engineering
Himanshu Madhani writes:
> Add fix to read correct register value for ISP82xx, during check for
> register disconnect.ISP82xx has different base register.
Applied to 4.11/scsi-fixes.
--
Martin K. Petersen Oracle Linux Engineering
David Buckley writes:
David,
> They result in discard granularity being forced to logical block size
> if the disk reports LBPRZ is enabled (which the netapp luns do).
Block zeroing and unmapping are currently sharing some plumbing and that
has lead to some compromises. In this case a bias towa
On Tue, 2017-04-04 at 19:35 -0400, Martin K. Petersen wrote:
> diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
> index fb9b4d29af0b..6084c415c070 100644
> --- a/drivers/scsi/sd.c
> +++ b/drivers/scsi/sd.c
> @@ -2102,6 +2102,16 @@ static void read_capacity_error(struct scsi_disk
> *sdkp, struct
Arnd Bergmann writes:
Arnd,
> drivers/scsi/advansys.c: In function 'AscMsgOutSDTR':
> drivers/scsi/advansys.c:3860:26: error: '*((void *)&sdtr_buf+5)' may be used
> uninitialized in this function [-Werror=maybe-uninitialized]
> ((ushort)s_buffer[i + 1] << 8) | s_buffer[i]);
>
"Dupuis, Chad" writes:
Chad,
> We need to initialize qedf->fipvlan_compl in __qedf_probe so that if
> we receive an unsolicited FIP VLAN response, the system doesn't crash
> due to trying to complete an uninitialized completion.
>
> Also add a check to see if there are any waiters on the complet
Bart Van Assche writes:
Hi Bart,
> Sorry but I still don't understand why the two checks are
> different. How about the (untested) patch below? The approach below
> avoids that the check is duplicated and - at least in my opinion -
> results in code that is easier to read.
Just tripped over thi
On Wed, Mar 29, 2017 at 6:02 PM, Mauricio Faria de Oliveira
wrote:
> The commit 08024885a2a3 ("ses: Add power_status to SES device slot")
> introduced the 'power_status' attribute to enclosure components and
> the associated callbacks.
>
> There are 2 callbacks available to get the power status of
From: Dick Kennedy
Unecessary lock is taken. ring lock should be sufficient
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
---
drivers/scsi/lpfc/lpfc_nvmet.c | 4
1 file changed, 4 deletions(-)
diff --git a/drivers/scsi/lpfc/lpfc_nvmet.c b/drivers/scsi/lpfc/lpfc_nvmet.c
index 86
From: Dick Kennedy
When RPI is not available, driver sends WQE with invalid RPI value and hence rej
ected by HBA.
lpfc :82:00.3: 1:3154 BLS ABORT RSP failed, data: x3/xa0320008
and
lpfc :82:00.3: 1:(71):2753 PLOGI failure DID:FA Status:x3/xa0240008
In this case, driver accesses rpi_
From: Dick Kennedy
Verify WQ_CREATE with 128B WQEs in V0 and V1.
Code review of another bug showed the driver passing
128B WQEs and 8 pages in WQ CREATE and V0.
Code inspection/instrumentation showed that the driver
uses V0 in WQ_CREATE and if the caller passes queue->entry_size
128B, the driver
From: Dick Kennedy
Two issues: (1) driver could not be unloaded and
reloaded without some Oops or Panic occurring. (2) The
driver was panicking because of a corruption in the Memory
Manager when the iocb list was getting allocated.
Root cause for the memory corruption was a double
free of the Wo
From: Dick Kennedy
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
---
drivers/scsi/lpfc/lpfc_nvme.h | 4 +---
drivers/scsi/lpfc/lpfc_nvmet.c | 2 +-
drivers/scsi/lpfc/lpfc_nvmet.h | 4 +---
3 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/drivers/scsi/lpfc/lpfc_nvme.h b/
From: Dick Kennedy
Symptoms: NVMET didn't have any RSCN handling at all and
would not execute implicit LOGO when receiving a PLOGI
from an rport that NVMET had in state UNMAPPED.
Clean up the logic in lpfc_nlp_state_cleanup for
initiators (FCP and NVME). NVMET should not respond to
RSCN includin
From: Dick Kennedy
The symptom is that the driver will fail to login to the fabric. The reason is
bacause it is out of iocb resources.
This fix algins the number of MRQ resources with the total resources so that it
can handle fabric events when needed.
Signed-off-by: Dick Kennedy
Signed-off-by
From: Dick Kennedy
One of the idefs in the previous kconfig patch was not corrected.
Also one alingment issue fixed.
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
---
drivers/scsi/lpfc/lpfc_attr.c | 2 +-
drivers/scsi/lpfc/lpfc_nvme.c | 2 +-
2 files changed, 2 insertions(+), 2 delet
From: Dick Kennedy
performance lab running tests on upstream 4.10-rc5
POC and observing error during the NVME connect process. Here
are the errors:
Issue 1:
The initiator is claiming the nvme_fc_unregister_remoteport upcall is
not completing the unregister in the time allotted.
[ 2186.151317] l
From: Dick Kennedy
Missing code path, new NVME abort API
The first lpfc driver with nvme had this routine stubbed.
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
---
drivers/scsi/lpfc/lpfc_crtn.h| 7 +
drivers/scsi/lpfc/lpfc_debugfs.c | 55 +--
drivers/scsi/lpfc/lpfc_hw4.h
From: Dick Kennedy
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
---
drivers/scsi/lpfc/lpfc_attr.c| 6 +-
drivers/scsi/lpfc/lpfc_debugfs.c | 14 --
drivers/scsi/lpfc/lpfc_init.c| 6 ++
drivers/scsi/lpfc/lpfc_nvme.h| 3 ---
4 files changed, 15 inserti
From: Dick Kennedy
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
---
drivers/scsi/lpfc/lpfc_sli.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index 1c9fa45..7087c55 100644
--- a/drivers/scsi/lpfc/lpfc_
On 04/04/17 04:46 AM, Sagi Grimberg wrote:
>
>> +p2pmem_debugfs_root = debugfs_create_dir("p2pmem", NULL);
>> +if (!p2pmem_debugfs_root)
>> +pr_info("could not create debugfs entry, continuing\n");
>> +
>
> Why continue? I think it'd be better to just fail it.
Yup, agreed. This
From: Dick Kennedy
Cannot set these to a large number
The existing module parameter lpfc_sg_seg_cnt is used for both
SCSI and NVME.
Limit the module parameter lpfc_sg_seg_cnt to 128 with the
default being 64 for both NVME and NVMET, assuming NVME is enabled in the
driver for that port. The driv
From: Dick Kennedy
Firmware sends first FLOGI to fabric with vendor version changes.
On link up driver gets updated service parameter with FAWWN assigned port name.
Driver sends 2nd FLOGI with updated fawwpn and modifies the vport->fc_portname i
n driver.
Soft wwpn will not be allowed when fawwpn
From: Dick Kennedy
The driver does not accept PRLI from the target and this
causes the target to reject the subsequent PRLI from the driver
Fix: Accept the incoming PRLI so that the target can also accept
the PRLI from the driver
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
---
d
From: Dick Kennedy
With update nvme upstream driver sources, loading
the driver with nvme enabled resulting in this Oops.
Mar 6 10:09:55 NVME-init kernel: BUG: unable to handle kernel NULL pointer dere
ference at 0018
Mar 6 10:09:55 NVME-init kernel: IP: lpfc_nvme_update_localport+
From: Dick Kennedy
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 b/drivers/scsi/lpfc/lpfc_version.h
index d4e95e2..1c26dc6 100644
--- a/drivers/scs
From: Dick Kennedy
---
drivers/scsi/lpfc/lpfc_nvmet.c | 127 -
drivers/scsi/lpfc/lpfc_nvmet.h | 7 ++-
2 files changed, 105 insertions(+), 29 deletions(-)
diff --git a/drivers/scsi/lpfc/lpfc_nvmet.c b/drivers/scsi/lpfc/lpfc_nvmet.c
index 551e81a..cbd637
This patch set includes patches to fix driver load/unload that have been
partiallty submitted by other users.
This patch set is supplying the abort handline for nvme that was missing.
Dick Kennedy (19):
Fix advertised max_sgl_segment count for NVMET
Fixes after reviewing last set of patches.
From: Dick Kennedy
PRLI ACC from target is FCP oriented
Signed-off-by: Dick Kennedy
Signed-off-by: James Smart
---
drivers/scsi/lpfc/lpfc_els.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index d9c61d0..d6e0f
On 04/04/17 04:59 AM, Sagi Grimberg wrote:
> We can never ever get here from an IO command, and that is a good thing
> because it would have been broken if we did, regardless of what copy
> method we use...
Yes, I changed this mostly for admin commands. I did notice connect
commands do end up re
On 04/04/2017 05:59 PM, Ming Lei wrote:
On Tue, Apr 4, 2017 at 8:07 PM, Hannes Reinecke wrote:
Hi all,
as discussed recently most existing HBAs have a host-wide tagset which
does not map easily onto the per-queue tagset model of block mq.
This patchset implements a flag BLK_MQ_F_GLOBAL_TAGS fo
On 04/04/2017 05:32 PM, Omar Sandoval wrote:
On Tue, Apr 04, 2017 at 02:07:43PM +0200, Hannes Reinecke wrote:
Hi all,
as discussed recently most existing HBAs have a host-wide tagset which
does not map easily onto the per-queue tagset model of block mq.
This patchset implements a flag BLK_MQ_F_
On 04/04/2017 09:00 AM, Ming Lei wrote:
> Just be curious, why is multi hard queue used for this case? Are there
> some real cases in SCSI?
Hello Ming,
Yes, there is a real need for this. Background information is available
in the following e-mail thread: Arun Easi, "scsi-mq - tag# and
can_queue,
On 04/04/17 04:40 AM, Sagi Grimberg wrote:
> Hey Logan,
>
>> We create a configfs attribute in each nvme-fabrics target port to
>> enable p2p memory use. When enabled, the port will only then use the
>> p2p memory if a p2p memory device can be found which is behind the
>> same switch as the RDMA
On Tue, Apr 4, 2017 at 8:07 PM, Hannes Reinecke wrote:
> Hi all,
>
> as discussed recently most existing HBAs have a host-wide tagset which
> does not map easily onto the per-queue tagset model of block mq.
> This patchset implements a flag BLK_MQ_F_GLOBAL_TAGS for block-mq, which
> enables the us
On 04/04/17 04:42 AM, Sagi Grimberg wrote:
> This is weird, why even call this if !use_p2pmem?
I personally find it cleaner than:
if (use_p2pmem)
setup_memwin_p2pmem(...)
I'm not sure why that's so weird.
Logan
On Tue, Apr 04, 2017 at 01:59:26PM +0300, Sagi Grimberg wrote:
> Note that the nvme completion queues are still on the host memory, so
> this means we have lost the ordering between data and completions as
> they go to different pcie targets.
Hmm, in this simple up/down case with a switch, I think
On Tue, 2017-04-04 at 08:32 -0700, Omar Sandoval wrote:
> blk-mq already supports a shared tagset, and scsi-mq already uses that.
> When we initialize a request queue, we add it to a tagset with
> blk_mq_add_queue_set(), where we automatically mark the tagset as shared
> if there is more than one q
On Tue, Apr 04, 2017 at 02:07:43PM +0200, Hannes Reinecke wrote:
> Hi all,
>
> as discussed recently most existing HBAs have a host-wide tagset which
> does not map easily onto the per-queue tagset model of block mq.
> This patchset implements a flag BLK_MQ_F_GLOBAL_TAGS for block-mq, which
> enab
If a failed command is retried and fails again we need
to enter SCSI EH, otherwise we will never be able to
recover the command.
To detect this situation we must not clear scmd->eh_eflags
when EH finishes but rather make it persistent throughout
the lifetime of the command.
Reviewed-by: Benjamin B
If sd_eh_action() decides to take the device offline there is
no point in returning FAILED, as taking the device offline
is the ultimate step in SCSI EH anyway.
So further escalation via SCSI EH is not likely to make a
difference and we can as well return SUCCESS.
Cc: Benjamin Block
Signed-off-by
The current medium access timeout counter will be increased for
each command, so if there are enough failed commands we'll hit
the medium access timeout for even a single device failure and
the following kernel message is displayed:
sd H:C:T:L: [sdXY] Medium access timeout failure. Offlining disk!
scsi_eh_scmd_add() currently only will fail if no
error handler thread is started (which will never be the
case) or if the state machine encounters an illegal transition.
But if we're encountering an invalid state transition
chances is we cannot fixup things with the error handler.
So better add a
The block layer always calls the timeout function from a workqueue
context, so there is no need to have yet another workqueue for
running command aborts.
Signed-off-by: Hannes Reinecke
---
drivers/scsi/scsi.c | 2 --
drivers/scsi/scsi_error.c | 80 +++--
From: Christoph Hellwig
We now first try to call ->eh_abort_handler from a work queue, but libsas
was always failing that for no good reason. Allow async aborts.
Reviewed-by: Johannes Thumshirn
Reviewed-by: Hannes Reinecke
Signed-off-by: Christoph Hellwig
---
drivers/scsi/libsas/sas_scsi_ho
There hasn't been any reports for HBAs where asynchronous abort
would not work, so we should make it mandatory and remove
the fallback.
Signed-off-by: Hannes Reinecke
Reviewed-by: Johannes Thumshirn
Reviewed-by: Bart Van Assche
---
Documentation/scsi/scsi_eh.txt | 18 --
drivers/scsi/s
Hi all,
this is a resend of a small patchset for cleaning up SCSI EH.
Primary goal is to make asynchronous aborts mandatory; there hasn't
been a single report so far where asynchronous abort won't work, so
the 'no_async_abort' flag has never been used and will be removed
with this patchset.
Additi
When a command has timed out we always should be sending an
abort; with the previous code a failed abort might signal
SCSI EH to start, and all other timed out commands will
never be aborted, even though they might belong to a
different ITL nexus.
Cc: Benjamin Block
Signed-off-by: Hannes Reinecke
NAK - don't overload ->eh_action for two entirely different purposes.
scsi_eh_scmd_add() currently only will fail if no
error handler thread is started (which will never be the
case) or if the state machine encounters an illegal transition.
But if we're encountering an invalid state transition
chances is we cannot fixup things with the error handler.
So better add a
The block layer always calls the timeout function from a workqueue
context, so there is no need to have yet another workqueue for
running command aborts.
Signed-off-by: Hannes Reinecke
---
drivers/scsi/scsi.c | 2 --
drivers/scsi/scsi_error.c | 80 +++--
From: Christoph Hellwig
We now first try to call ->eh_abort_handler from a work queue, but libsas
was always failing that for no good reason. Allow async aborts.
Reviewed-by: Johannes Thumshirn
Reviewed-by: Hannes Reinecke
Signed-off-by: Christoph Hellwig
---
drivers/scsi/libsas/sas_scsi_ho
If a failed command is retried and fails again we need
to enter SCSI EH, otherwise we will never be able to
recover the command.
To detect this situation we must not clear scmd->eh_eflags
when EH finishes but rather make it persistent throughout
the lifetime of the command.
Reviewed-by: Benjamin B
Hi all,
this is a resend of a small patchset for cleaning up SCSI EH.
Primary goal is to make asynchronous aborts mandatory; there hasn't
been a single report so far where asynchronous abort won't work, so
the 'no_async_abort' flag has never been used and will be removed
with this patchset.
Additi
If sd_eh_action() decides to take the device offline there is
no point in returning FAILED, as taking the device offline
is the ultimate step in SCSI EH anyway.
So further escalation via SCSI EH is not likely to make a
difference and we can as well return SUCCESS.
Cc: Benjamin Block
Signed-off-by
The current medium access timeout counter will be increased for
each command, so if there are enough failed commands we'll hit
the medium access timeout for even a single device failure and
the following kernel message is displayed:
sd H:C:T:L: [sdXY] Medium access timeout failure. Offlining disk!
When a command has timed out we always should be sending an
abort; with the previous code a failed abort might signal
SCSI EH to start, and all other timed out commands will
never be aborted, even though they might belong to a
different ITL nexus.
Cc: Benjamin Block
Signed-off-by: Hannes Reinecke
There hasn't been any reports for HBAs where asynchronous abort
would not work, so we should make it mandatory and remove
the fallback.
Signed-off-by: Hannes Reinecke
Reviewed-by: Johannes Thumshirn
Reviewed-by: Bart Van Assche
---
Documentation/scsi/scsi_eh.txt | 18 --
drivers/scsi/s
Most legacy HBAs have a tagset per HBA, not per queue. To map
these devices onto block-mq this patch implements a new tagset
flag BLK_MQ_F_GLOBAL_TAGS, which will cause the tag allocator
to use just one tagset for all hardware queues.
Signed-off-by: Hannes Reinecke
---
block/blk-mq-tag.c | 1
Hi all,
as discussed recently most existing HBAs have a host-wide tagset which
does not map easily onto the per-queue tagset model of block mq.
This patchset implements a flag BLK_MQ_F_GLOBAL_TAGS for block-mq, which
enables the use of a shared tagset for all hardware queues.
The second patch adds
Add a host template flag 'host_tagset' to enable the use of a
global tagmap for block-mq.
Signed-off-by: Hannes Reinecke
---
drivers/scsi/scsi_lib.c | 2 ++
include/scsi/scsi_host.h | 5 +
2 files changed, 7 insertions(+)
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index
Hi Martin and Junichi,
On 04/03/2017 11:10 PM, Junichi Nomura wrote:
On 04/04/17 06:53, Mauricio Faria de Oliveira wrote:
On 03/28/2017 11:29 PM, Junichi Nomura wrote:
Since commit 895427bd012c ("scsi: lpfc: NVME Initiator: Base modifications"),
"rmmod lpfc" starting to cause panic or corrup
On 04/03/2017 04:32 PM, Johannes Thumshirn wrote:
> sas_domain_release_transport is unused since at least v3.13, remove it.
>
> Signed-off-by: Johannes Thumshirn
> ---
> drivers/scsi/libsas/sas_init.c | 7 ---
> include/scsi/libsas.h | 1 -
> 2 files changed, 8 deletions(-)
>
Revie
u16 nvmet_copy_to_sgl(struct nvmet_req *req, off_t off, const void *buf,
size_t len)
{
- if (sg_pcopy_from_buffer(req->sg, req->sg_cnt, buf, len, off) != len)
+ bool iomem = req->p2pmem;
+ size_t ret;
+
+ ret = sg_copy_buffer(req->sg, req->sg_cnt, (void
+ p2pmem_debugfs_root = debugfs_create_dir("p2pmem", NULL);
+ if (!p2pmem_debugfs_root)
+ pr_info("could not create debugfs entry, continuing\n");
+
Why continue? I think it'd be better to just fail it.
Besides, this can be safely squashed into patch 1.
+static void setup_memwin_p2pmem(struct adapter *adap)
+{
+ unsigned int mem_base = t4_read_reg(adap, CIM_EXTMEM2_BASE_ADDR_A);
+ unsigned int mem_size = t4_read_reg(adap, CIM_EXTMEM2_ADDR_SIZE_A);
+
+ if (!use_p2pmem)
+ return;
This is weird, why even call this
Hey Logan,
We create a configfs attribute in each nvme-fabrics target port to
enable p2p memory use. When enabled, the port will only then use the
p2p memory if a p2p memory device can be found which is behind the
same switch as the RDMA port and all the block devices in use. If
the user enabled
On Tue, Apr 04, 2017 at 08:46:14AM +0200, Christoph Hellwig wrote:
> Does this one work better?
>
csiostor driver is triggering following warning during module unload.
WARNING: CPU: 8 PID: 20636 at kernel/irq/manage.c:1480 __free_irq+0xa6/0x2b0
Trying to free already-free IRQ 53
CPU: 8 PID: 20636
74 matches
Mail list logo