From: Davidlohr Bueso <dave@stgolabs.net>
To: linux-scsi@vger.kernel.org
Cc: martin.petersen@oracle.com, ejb@linux.ibm.com,
bigeasy@linutronix.de, tglx@linutronix.de, dave@stgolabs.net
Subject: [PATCH 00/10] scsi: Replace tasklets as BH
Date: Mon, 30 May 2022 16:15:02 -0700 [thread overview]
Message-ID: <20220530231512.9729-1-dave@stgolabs.net> (raw)
In spirit of scsi drivers playing nicely with realtime, the following
removes most the use of tasklets throughout drivers/scsi/ replacing
them with either threaded irqs or workqueues such that they run in
regular task context instead of irq; and in addition cleans up a lot
of the async work deferral code. Only two users remain (those that
do the MSIX vector of tasklets): pm8001 and pmcraid, which I don't
have a suitable equivalent yet. One possibility would be to have a
single threaded wq per msix vector entry and thus run concurrently.
Yes, there's a bit more overhead with a task than for a softirq, but
the problem with softirqs and tasklets is that they can't be preempted,
and thus are more important than all tasks on the system. Furthermore
there are no guarantees it will run in irq context at all if ksoftirq
kicks in.
Because of a total lack of hardware, these patches have only been
compile-tested. Please consider for v5.21.
Thanks!
Davidlohr Bueso (10):
scsi/mvsas: Kill CONFIG_SCSI_MVSAS_TASKLET
scsi/megaraid: Replace adapter->dpc_h tasklet with threaded irq
scsi/megaraid_sas: Replace instance->tasklet with threaded irq
scsi/aic94xx: Replace the donelist tasklet with threaded irq
scsi/isci: Replace completion_tasklet with threaded irq
scsi/ibmvscsi_tgt: Replace work tasklet with threaded irq
scsi/esas2r: Replace tasklet with workqueue
scsi/ibmvfc: Replace tasklet with work
scsi/ibmvscsi: Replace srp tasklet with work
scsi/lpfc: Remove bogus references to discovery tasklet
drivers/scsi/aic94xx/aic94xx_hwi.c | 23 ++----
drivers/scsi/aic94xx/aic94xx_hwi.h | 5 +-
drivers/scsi/aic94xx/aic94xx_init.c | 5 +-
drivers/scsi/aic94xx/aic94xx_scb.c | 88 ++++++---------------
drivers/scsi/aic94xx/aic94xx_task.c | 16 ++--
drivers/scsi/aic94xx/aic94xx_tmf.c | 40 +++++-----
drivers/scsi/esas2r/esas2r.h | 19 ++---
drivers/scsi/esas2r/esas2r_init.c | 20 +++--
drivers/scsi/esas2r/esas2r_int.c | 20 ++---
drivers/scsi/esas2r/esas2r_io.c | 2 +-
drivers/scsi/esas2r/esas2r_main.c | 34 +++++---
drivers/scsi/ibmvscsi/ibmvfc.c | 21 ++---
drivers/scsi/ibmvscsi/ibmvfc.h | 3 +-
drivers/scsi/ibmvscsi/ibmvscsi.c | 38 ++++++---
drivers/scsi/ibmvscsi/ibmvscsi.h | 3 +-
drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.c | 17 ++--
drivers/scsi/ibmvscsi_tgt/ibmvscsi_tgt.h | 1 -
drivers/scsi/isci/host.c | 12 +--
drivers/scsi/isci/host.h | 3 +-
drivers/scsi/isci/init.c | 17 ++--
drivers/scsi/lpfc/lpfc.h | 2 -
drivers/scsi/lpfc/lpfc_disc.h | 2 +-
drivers/scsi/megaraid/mega_common.h | 2 -
drivers/scsi/megaraid/megaraid_mbox.c | 52 +++++-------
drivers/scsi/megaraid/megaraid_sas.h | 3 +-
drivers/scsi/megaraid/megaraid_sas_base.c | 51 ++++++------
drivers/scsi/megaraid/megaraid_sas_fusion.c | 18 +++--
drivers/scsi/mvsas/Kconfig | 7 --
drivers/scsi/mvsas/mv_init.c | 44 ++---------
drivers/scsi/mvsas/mv_sas.h | 1 -
30 files changed, 245 insertions(+), 324 deletions(-)
--
2.36.1
next reply other threads:[~2022-05-30 23:15 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-30 23:15 Davidlohr Bueso [this message]
2022-05-30 23:15 ` [PATCH 01/10] scsi/mvsas: Kill CONFIG_SCSI_MVSAS_TASKLET Davidlohr Bueso
2022-05-31 8:05 ` John Garry
2022-05-31 14:52 ` Davidlohr Bueso
2022-05-31 15:12 ` John Garry
2022-05-31 15:17 ` Sebastian Andrzej Siewior
2022-05-31 15:26 ` John Garry
2022-05-31 15:31 ` Sebastian Andrzej Siewior
2022-06-01 1:04 ` Davidlohr Bueso
2022-06-01 8:12 ` John Garry
2022-05-30 23:15 ` [PATCH 02/10] scsi/megaraid: Replace adapter->dpc_h tasklet with threaded irq Davidlohr Bueso
2022-06-02 8:36 ` Sebastian Andrzej Siewior
2022-05-30 23:15 ` [PATCH 03/10] scsi/megaraid_sas: Replace instance->tasklet " Davidlohr Bueso
2022-06-02 10:11 ` Sebastian Andrzej Siewior
2022-05-30 23:15 ` [PATCH 04/10] scsi/aic94xx: Replace the donelist tasklet " Davidlohr Bueso
2022-06-02 10:31 ` Sebastian Andrzej Siewior
2022-05-30 23:15 ` [PATCH 05/10] scsi/isci: Replace completion_tasklet " Davidlohr Bueso
2022-06-02 18:19 ` Sebastian Andrzej Siewior
2022-06-06 10:24 ` Artur Paszkiewicz
2022-06-07 9:13 ` Sebastian Andrzej Siewior
2022-05-30 23:15 ` [PATCH 06/10] scsi/ibmvscsi_tgt: Replace work tasklet " Davidlohr Bueso
2022-05-30 23:15 ` Davidlohr Bueso
2022-06-03 11:05 ` Sebastian Andrzej Siewior
2022-06-03 11:05 ` Sebastian Andrzej Siewior
2022-05-30 23:15 ` [PATCH 07/10] scsi/esas2r: Replace tasklet with workqueue Davidlohr Bueso
2022-06-09 12:14 ` Sebastian Andrzej Siewior
2022-05-30 23:15 ` [PATCH 08/10] scsi/ibmvfc: Replace tasklet with work Davidlohr Bueso
2022-05-30 23:15 ` Davidlohr Bueso
2022-06-09 12:30 ` Sebastian Andrzej Siewior
2022-06-09 12:30 ` Sebastian Andrzej Siewior
2022-06-28 15:18 ` Davidlohr Bueso
2022-06-28 15:18 ` Davidlohr Bueso
2022-05-30 23:15 ` [PATCH 09/10] scsi/ibmvscsi: Replace srp " Davidlohr Bueso
2022-05-30 23:15 ` Davidlohr Bueso
2022-06-09 15:02 ` Sebastian Andrzej Siewior
2022-06-09 15:02 ` Sebastian Andrzej Siewior
2022-06-09 15:46 ` David Laight
2022-06-14 13:25 ` 'Sebastian Andrzej Siewior'
2022-06-14 13:25 ` 'Sebastian Andrzej Siewior'
2022-06-14 13:34 ` David Laight
2022-06-14 13:34 ` David Laight
2022-05-30 23:15 ` [PATCH 10/10] scsi/lpfc: Remove bogus references to discovery tasklet Davidlohr Bueso
2022-06-09 15:21 ` Sebastian Andrzej Siewior
2022-06-02 7:57 ` [PATCH 00/10] scsi: Replace tasklets as BH Sebastian Andrzej Siewior
2022-06-07 15:59 ` Davidlohr Bueso
2022-06-07 16:20 ` Sebastian Andrzej Siewior
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220530231512.9729-1-dave@stgolabs.net \
--to=dave@stgolabs.net \
--cc=bigeasy@linutronix.de \
--cc=ejb@linux.ibm.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.