linux/drivers/scsi/lpfc
James Smart 93a4d6f401 scsi: lpfc: Add registration for CPU Offline/Online events
The recent affinitization didn't address cpu offlining/onlining.  If an
interrupt vector is shared and the low order cpu owning the vector is
offlined, as interrupts are managed, the vector is taken offline. This
causes the other CPUs sharing the vector will hang as they can't get io
completions.

Correct by registering callbacks with the system for Offline/Online
events. When a cpu is taken offline, its eq, which is tied to an interrupt
vector is found. If the cpu is the "owner" of the vector and if the
eq/vector is shared by other CPUs, the eq is placed into a polled mode.
Additionally, code paths that perform io submission on the "sharing CPUs"
will check the eq state and poll for completion after submission of new io
to a wq that uses the eq.

Similarly, when a cpu comes back online and owns an offlined vector, the eq
is taken out of polled mode and rearmed to start driving interrupts for eq.

Link: https://lore.kernel.org/r/20191105005708.7399-9-jsmart2021@gmail.com
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2019-11-06 00:04:04 -05:00
..
lpfc_attr.c scsi: lpfc: Fix dynamic fw log enablement check 2019-11-06 00:04:04 -05:00
lpfc_attr.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_bsg.c scsi: lpfc: Make FW logging dynamically configurable 2019-10-24 21:02:05 -04:00
lpfc_bsg.h scsi: lpfc: Update Copyright in driver version 2019-03-19 13:15:10 -04:00
lpfc_compat.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_crtn.h scsi: lpfc: Add registration for CPU Offline/Online events 2019-11-06 00:04:04 -05:00
lpfc_ct.c scsi: lpfc: Add additional discovery log messages 2019-10-24 21:02:06 -04:00
lpfc_debugfs.c scsi: lpfc: Make lpfc_debugfs_ras_log_data static 2019-10-28 22:02:28 -04:00
lpfc_debugfs.h scsi: lpfc: Merge per-protocol WQ/CQ pairs into single per-cpu pair 2019-08-19 22:41:12 -04:00
lpfc_disc.h scsi: lpfc: Add NVMe sequence level error recovery support 2019-08-19 22:41:12 -04:00
lpfc_els.c scsi: lpfc: Fix unexpected error messages during RSCN handling 2019-11-06 00:04:04 -05:00
lpfc_hbadisc.c scsi: lpfc: Clarify FAWNN error message 2019-11-06 00:04:04 -05:00
lpfc_hw4.h scsi: lpfc: fix spelling error in MAGIC_NUMER_xxx 2019-10-28 21:49:22 -04:00
lpfc_hw.h scsi: lpfc: Fix ELS field alignments 2019-08-19 22:41:08 -04:00
lpfc_ids.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_init.c scsi: lpfc: Add registration for CPU Offline/Online events 2019-11-06 00:04:04 -05:00
lpfc_logmsg.h scsi: lpfc: Add log macros to allow print by serverity or verbosity setting 2019-10-24 21:02:05 -04:00
lpfc_mbox.c scsi: lpfc: Add FC-AL support to lpe32000 models 2019-10-24 21:02:06 -04:00
lpfc_mem.c scsi: lpfc: Remove lock contention target write path 2019-10-24 21:02:05 -04:00
lpfc_nl.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc_nportdisc.c scsi: lpfc: Sync with FC-NVMe-2 SLER change to require Conf with SLER 2019-11-06 00:04:04 -05:00
lpfc_nvme.c scsi: lpfc: Slight fast-path performance optimizations 2019-10-24 21:02:05 -04:00
lpfc_nvme.h SCSI misc on 20190306 2019-03-09 16:53:47 -08:00
lpfc_nvmet.c scsi: lpfc: lpfc_nvmet: Fix Use plain integer as NULL pointer 2019-10-24 21:12:08 -04:00
lpfc_nvmet.h scsi: lpfc: Remove lock contention target write path 2019-10-24 21:02:05 -04:00
lpfc_scsi.c scsi: lpfc: Slight fast-path performance optimizations 2019-10-24 21:02:05 -04:00
lpfc_scsi.h scsi: lpfc: Update 12.2.0.0 file copyrights to 2019 2019-02-05 22:29:50 -05:00
lpfc_sli4.h scsi: lpfc: Add registration for CPU Offline/Online events 2019-11-06 00:04:04 -05:00
lpfc_sli.c scsi: lpfc: Add registration for CPU Offline/Online events 2019-11-06 00:04:04 -05:00
lpfc_sli.h scsi: lpfc: Fix bad ndlp ptr in xri aborted handling 2019-10-24 21:02:04 -04:00
lpfc_version.h scsi: lpfc: Update lpfc version to 12.6.0.0 2019-10-24 21:02:06 -04:00
lpfc_vport.c scsi: lpfc: Fix issuing init_vpi mbox on SLI-3 card 2019-08-19 22:41:09 -04:00
lpfc_vport.h scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00
lpfc.h scsi: lpfc: Add registration for CPU Offline/Online events 2019-11-06 00:04:04 -05:00
Makefile scsi: lpfc: Revise copyright for new company language 2018-07-10 22:15:09 -04:00