06 Jan, 2015
1 commit
-
Commit e05fe29248 (qla2xxx: Honor FCP_RSP retry delay timer field.)
causes systems to busy-wait for about 3 minutes after boot prior to
detecting SAN disks.During this wait period one kworker is running full-time
(though /proc//stack has no useful data). Another kworker is
waiting for IO to complete during that whole time period.Looking at drivers/scsi/qla2xxx/qla_os.c, fcport->retry_delay_timestamp
has a special value of 0 though that 0 value forces system to wait when
jiffies is very large value (e.g. 4294952605 - "negative" value when
signed on 32bit systems).Signed-off-by: Bruno Prémont
Acked-by: Chad Dupuis
Signed-off-by: Christoph Hellwig
04 Dec, 2014
1 commit
-
Since we got rid of ordered tag support in 2010 the prime use case of
switching on and off ordered tags has been obsolete. The other function
of enabling/disabling tagging entirely has only been correctly implemented
by the 53c700 driver and isn't generally useful.Signed-off-by: Christoph Hellwig
Reviewed-by: Bart Van Assche
Reviewed-by: Martin K. Petersen
24 Nov, 2014
2 commits
-
Drop the now unused reason argument from the ->change_queue_depth method.
Also add a return value to scsi_adjust_queue_depth, and rename it to
scsi_change_queue_depth now that it can be used as the default
->change_queue_depth implementation.Signed-off-by: Christoph Hellwig
Reviewed-by: Mike Christie
Reviewed-by: Hannes Reinecke -
All drivers use the implementation for ramping the queue up and down, so
instead of overloading the change_queue_depth method call the
implementation diretly if the driver opts into it by setting the
track_queue_depth flag in the host template.Note that a few drivers validated the new queue depth in their
change_queue_depth method, but as we never go over the queue depth
set during slave_configure or the sysfs file this isn't nessecary
and can safely be removed.Signed-off-by: Christoph Hellwig
Reviewed-by: Mike Christie
Reviewed-by: Hannes Reinecke
Reviewed-by: Venkatesh Srinivas
12 Nov, 2014
4 commits
-
Remove the tagged argument from scsi_adjust_queue_depth, and just let it
handle the queue depth. For most drivers those two are fairly separate,
given that most modern drivers don't care about the SCSI "tagged" status
of a command at all, and many old drivers allow queuing of multiple
untagged commands in the driver.Instead we start out with the ->simple_tags flag set before calling
->slave_configure, which is how all drivers actually looking at
->simple_tags except for one worke anyway. The one other case looks
broken, but I've kept the behavior as-is for now.Except for that we only change ->simple_tags from the ->change_queue_type,
and when rejecting a tag message in a single driver, so keeping this
churn out of scsi_adjust_queue_depth is a clear win.Now that the usage of scsi_adjust_queue_depth is more obvious we can
also remove all the trivial instances in ->slave_alloc or ->slave_configure
that just set it to the cmd_per_lun default.Signed-off-by: Christoph Hellwig
Reviewed-by: Mike Christie
Reviewed-by: Hannes Reinecke
Reviewed-by: Martin K. Petersen -
Allow a driver to ask for block layer tags by setting .use_blk_tags in the
host template, in which case it will always see a valid value in
request->tag, similar to the behavior when using blk-mq. This means even
SCSI "untagged" commands will now have a tag, which is especially useful
when using a host-wide tag map.Signed-off-by: Christoph Hellwig
Reviewed-by: Mike Christie
Reviewed-by: Martin K. Petersen
Reviewed-by: Hannes Reinecke -
Remove the ordered_tags field, we haven't been issuing ordered tags based
on it since the big barrier rework in 2010.Signed-off-by: Christoph Hellwig
Reviewed-by: Mike Christie
Reviewed-by: Bart Van Assche
Reviewed-by: Martin K. Petersen -
Most drivers use exactly the same implementation, so provide it as a
library function.Signed-off-by: Christoph Hellwig
Reviewed-by: Bart Van Assche
Reviewed-by: Mike Christie
Reviewed-by: Martin K. Petersen
Reviewed-by: Hannes Reinecke
13 Oct, 2014
1 commit
-
Pull scheduler updates from Ingo Molnar:
"The main changes in this cycle were:- Optimized support for Intel "Cluster-on-Die" (CoD) topologies (Dave
Hansen)- Various sched/idle refinements for better idle handling (Nicolas
Pitre, Daniel Lezcano, Chuansheng Liu, Vincent Guittot)- sched/numa updates and optimizations (Rik van Riel)
- sysbench speedup (Vincent Guittot)
- capacity calculation cleanups/refactoring (Vincent Guittot)
- Various cleanups to thread group iteration (Oleg Nesterov)
- Double-rq-lock removal optimization and various refactorings
(Kirill Tkhai)- various sched/deadline fixes
... and lots of other changes"
* 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (72 commits)
sched/dl: Use dl_bw_of() under rcu_read_lock_sched()
sched/fair: Delete resched_cpu() from idle_balance()
sched, time: Fix build error with 64 bit cputime_t on 32 bit systems
sched: Improve sysbench performance by fixing spurious active migration
sched/x86: Fix up typo in topology detection
x86, sched: Add new topology for multi-NUMA-node CPUs
sched/rt: Use resched_curr() in task_tick_rt()
sched: Use rq->rd in sched_setaffinity() under RCU read lock
sched: cleanup: Rename 'out_unlock' to 'out_free_new_mask'
sched: Use dl_bw_of() under RCU read lock
sched/fair: Remove duplicate code from can_migrate_task()
sched, mips, ia64: Remove __ARCH_WANT_UNLOCKED_CTXSW
sched: print_rq(): Don't use tasklist_lock
sched: normalize_rt_tasks(): Don't use _irqsave for tasklist_lock, use task_rq_lock()
sched: Fix the task-group check in tg_has_rt_tasks()
sched/fair: Leverage the idle state info when choosing the "idlest" cpu
sched: Let the scheduler see CPU idle states
sched/deadline: Fix inter- exclusive cpusets migrations
sched/deadline: Clear dl_entity params when setscheduling to different class
sched/numa: Kill the wrong/dead TASK_DEAD check in task_numa_fault()
...
25 Sep, 2014
10 commits
-
Through the qla target code, the qlt_send_term_exchange() routine
is used in various different places to cleanup an exchange. For the
case of IOCB request queue is full, the exchange is left unhandled/
dangling. Existing code does not have re-try logic to cleanup the
exchange. This patch add retry logic to cleanup the exchange before
letting new commands through.For the case of FW running out of exchanges, driver need to reply
SAM_STAT_BUSY to the initiators. This patch add a pending queue
for the busy reply in case IOCB queue is unable to handle the cmd.Cc:
Signed-off-by: Quinn Tran
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig -
Signed-off-by: Saurav Kashyap
Signed-off-by: Giridhar Malavali
Signed-off-by: Christoph Hellwig -
Signed-off-by: Arun Easi
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig -
Disable the PCI device during shutdown to prevent any races with
other PCI code such as the AER handling code.Signed-off-by: Chad Dupuis
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig -
Parse the retry delay timer field from the FCP response data and if:
- It is not zero
- The SCSI status is busy or queue fullreturn SCSI_MLQUEUE_TARGET_BUSY for the number of milliseconds specified
in the retry delay timer field.Signed-off-by: Chad Dupuis
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig -
Nameserver data on FC switch is not refreshed when
qla2xxx driver is unloaded. Disabling laser for
ISP2031 will force FC switch to rescan ports and
clear fdmi entries from Nameserver.Signed-off-by: Himanshu Madhani
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig -
Signed-off-by: Sawan Chandak
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig -
Signed-off-by: Arun Easi
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig -
Signed-off-by: Himanshu Madhani
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig -
Add support for the FDMI-2 fabric switch feature.
Since FDMI-2 uses code from FDMI-1, some of the existing code
needed to be repaired to prevent fields from being overflowed.Signed-off-by: Himanshu Madhani
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig
19 Sep, 2014
1 commit
-
schedule(), io_schedule() and schedule_timeout() always return
with TASK_RUNNING state set, so one more setting is unnecessary.(All places in patch are visible good, only exception is
kiblnd_scheduler() from:drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c
Its schedule() is one line above standard 3 lines of unified diff)
No places where set_current_state() is used for mb().
Signed-off-by: Kirill Tkhai
Signed-off-by: Peter Zijlstra (Intel)
Link: http://lkml.kernel.org/r/1410529254.3569.23.camel@tkhai
Cc: Alasdair Kergon
Cc: Anil Belur
Cc: Arnd Bergmann
Cc: Dave Kleikamp
Cc: David Airlie
Cc: David Howells
Cc: Dmitry Eremin
Cc: Frank Blaschka
Cc: Greg Kroah-Hartman
Cc: Heiko Carstens
Cc: Helge Deller
Cc: Isaac Huang
Cc: James E.J. Bottomley
Cc: James E.J. Bottomley
Cc: J. Bruce Fields
Cc: Jeff Dike
Cc: Jesper Nilsson
Cc: Jiri Slaby
Cc: Laura Abbott
Cc: Liang Zhen
Cc: Linus Torvalds
Cc: Martin Schwidefsky
Cc: Masaru Nomura
Cc: Michael Opdenacker
Cc: Mikael Starvik
Cc: Mike Snitzer
Cc: Neil Brown
Cc: Oleg Drokin
Cc: Peng Tao
Cc: Richard Weinberger
Cc: Robert Love
Cc: Steven Rostedt
Cc: Trond Myklebust
Cc: Ursula Braun
Cc: Zi Shen Lim
Cc: devel@driverdev.osuosl.org
Cc: dm-devel@redhat.com
Cc: dri-devel@lists.freedesktop.org
Cc: fcoe-devel@open-fcoe.org
Cc: jfs-discussion@lists.sourceforge.net
Cc: linux390@de.ibm.com
Cc: linux-afs@lists.infradead.org
Cc: linux-cris-kernel@axis.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-nfs@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-raid@vger.kernel.org
Cc: linux-s390@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: qla2xxx-upstream@qlogic.com
Cc: user-mode-linux-devel@lists.sourceforge.net
Cc: user-mode-linux-user@lists.sourceforge.net
Signed-off-by: Ingo Molnar
17 Sep, 2014
5 commits
-
The PCI register read checking introduced in commit fe1b806f4f71
("qla2xxx: Disable adapter when we encounter a PCI disconnect") is
active during driver probe. Hold off scheduling any board removal until
the driver probe has completed. This ensures that the the board_disable
work structure is initialized and more importantly, avoids racing
qla2x00_probe_one.Signed-off-by: Joe Lawrence
Acked-by: Chad Dupuis
Signed-off-by: Christoph Hellwig -
Introduce mutual exclusion between the qla2xxx_remove_one PCI driver
callback and qla2x00_disable_board_on_pci_error, which is scheduled as
board_disable work by qla2x00_check_reg{32,16}_for_disconnect:* Leave the driver-specific data attached to the underlying PCI device
intact in qla2x00_disable_board_on_pci_error, so that qla2x00_remove_one
has enough breadcrumbs to determine that any board_disable work has been
completed.* In qla2xxx_remove_one, set a bit to prevent any subsequent
board_disable work from scheduling, then cancel and wait until pending
work has completed.* Reuse the PCI device enable count check in qla2x00_remove_one to
determine if board_disable has occured. The original purpose of this
check was unnecessary since the driver remove function wasn't called
when the probe fails.Signed-off-by: Joe Lawrence
Acked-by: Chad Dupuis
Signed-off-by: Christoph Hellwig -
Add an uint16_t variant of qla2x00_check_reg_for_disconnect and use
these routines to check and schedule a PCI-disconnected board from a
centralized place.Signed-off-by: Joe Lawrence
Acked-by: Chad Dupuis
Signed-off-by: Christoph Hellwig -
Take advantage of commit fe1b806f4f71 ("qla2xxx: Refactor shutdown code
so some functionality can be reused") to remove an inlined copy of
qla2x00_clear_drv_active in the driver's probe hardware error path.Signed-off-by: Joe Lawrence
Acked-by: Chad Dupuis
Signed-off-by: Christoph Hellwig -
Once calling scsi_host_put, be careful to not access qla_hw_data through
the Scsi_Host private data (ie, scsi_qla_host base_vha).Fixes: fe1b806f4f71 ("qla2xxx: Refactor shutdown code so some functionality can be reused")
Cc: stable@vger.kernel.org # 3.14, 3.15, 3.16
Signed-off-by: Joe Lawrence
Acked-by: Chad Dupuis
Signed-off-by: Christoph Hellwig
18 Jul, 2014
3 commits
-
Now that we're using 64-bit LUNs internally we need to increase
the size of max_luns to 64 bits, too.Signed-off-by: Hannes Reinecke
Reviewed-by: Christoph Hellwig
Reviewed-by: Ewan Milne
Signed-off-by: Christoph Hellwig -
The SCSI standard defines 64-bit values for LUNs, and large arrays
employing large or hierarchical LUN numbers become more and more
common.So update the linux SCSI stack to use 64-bit LUN numbers.
Signed-off-by: Hannes Reinecke
Reviewed-by: Christoph Hellwig
Reviewed-by: Ewan Milne
Signed-off-by: Christoph Hellwig -
Older HBAs are only capable of supporting 16-bit LUNs,
so we need to make sure to adjust max_lun accordingly.Signed-off-by: Hannes Reinecke
Acked-by: Chad Dupuis
Reviewed-by: Ewan Milne
Signed-off-by: Christoph Hellwig
10 Jun, 2014
1 commit
-
Pull SCSI updates from James Bottomley:
"This patch consists of the usual driver updates (qla2xxx, qla4xxx,
lpfc, be2iscsi, fnic, ufs, NCR5380) The NCR5380 is the addition to
maintained status of a long neglected driver for older hardware. In
addition there are a lot of minor fixes and cleanups and some more
updates to make scsi mq ready"* tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (130 commits)
include/scsi/osd_protocol.h: remove unnecessary __constant
mvsas: Recognise device/subsystem 9485/9485 as 88SE9485
Revert "be2iscsi: Fix processing cqe for cxn whose endpoint is freed"
mptfusion: fix msgContext in mptctl_hp_hostinfo
acornscsi: remove linked command support
scsi/NCR5380: dprintk macro
fusion: Remove use of DEF_SCSI_QCMD
fusion: Add free msg frames to the head, not tail of list
mpt2sas: Add free smids to the head, not tail of list
mpt2sas: Remove use of DEF_SCSI_QCMD
mpt2sas: Remove uses of serial_number
mpt3sas: Remove use of DEF_SCSI_QCMD
mpt3sas: Remove uses of serial_number
qla2xxx: Use kmemdup instead of kmalloc + memcpy
qla4xxx: Use kmemdup instead of kmalloc + memcpy
qla2xxx: fix incorrect debug printk
be2iscsi: Bump the driver version
be2iscsi: Fix processing cqe for cxn whose endpoint is freed
be2iscsi: Fix destroy MCC-CQ before MCC-EQ is destroyed
be2iscsi: Fix memory corruption in MBX path
...
29 May, 2014
1 commit
-
There are missing curly braces here so it prints that the recovery
failed even when it succeeded.Signed-off-by: Dan Carpenter
Reviewed-by: Giridhar Malavali
Acked-by: Chad Dupuis
Signed-off-by: Christoph Hellwig
19 May, 2014
10 commits
-
This can block progress of the SCSI error handler thread and cause long I/O
outages. Instead just fail immediately if another reset is going on or we are
accessing flash memory.Signed-off-by: Chad Dupuis
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig -
Add support for T10-Dif for Target Mode to qla driver.
The driver will look for firmware attribute that support
this feature. When the feature is present, the capabilities
will be report to TCM layer.Add CTIO CRC2 iocb to build T10-Dif commands.
Add support routines to process good & error cases.Signed-off-by: Quinn Tran
Signed-off-by: Nicholas Bellinger
Signed-off-by: Giridhar Malavali
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig -
Signed-off-by: Himanshu Madani
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig -
Signed-off-by: Sawan Chandak
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig -
Signed-off-by: Chad Dupuis
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig -
If the firmware cannot find the command specified then return SUCCESS to the
error handler so as not to needlessly escalate. Also cleanup the resources for
the command since we cannot expect the original command to returned in
interrupt context.Signed-off-by: Chad Dupuis
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig -
Signed-off-by: Armen Baloyan
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig -
Signed-off-by: Hiral Patel
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig -
Signed-off-by: Giridhar Malavali
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig -
Signed-off-by: Joe Carnuccio
Signed-off-by: Saurav Kashyap
Signed-off-by: Christoph Hellwig