From: 'Sebastian Andrzej Siewior' <bigeasy@linutronix.de>
To: David Laight <David.Laight@aculab.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>,
Tyrel Datwyler <tyreld@linux.ibm.com>,
"ejb@linux.ibm.com" <ejb@linux.ibm.com>,
"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
"martin.petersen@oracle.com" <martin.petersen@oracle.com>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>
Subject: Re: [PATCH 09/10] scsi/ibmvscsi: Replace srp tasklet with work
Date: Tue, 14 Jun 2022 15:25:37 +0200 [thread overview]
Message-ID: <YqiMUS0IGtMgyQ6q@linutronix.de> (raw)
In-Reply-To: <7faa88aaf7554545a60561d73597dc4f@AcuMS.aculab.com>
On 2022-06-09 15:46:04 [+0000], David Laight wrote:
> From: Sebastian Andrzej Siewior
> > Sent: 09 June 2022 16:03
> >
> > On 2022-05-30 16:15:11 [-0700], Davidlohr Bueso wrote:
> > > Tasklets have long been deprecated as being too heavy on the system
> > > by running in irq context - and this is not a performance critical
> > > path. If a higher priority process wants to run, it must wait for
> > > the tasklet to finish before doing so.
> > >
> > > Process srps asynchronously in process context in a dedicated
> > > single threaded workqueue.
> >
> > I would suggest threaded interrupts instead. The pattern here is the
> > same as in the previous driver except here is less locking.
>
> How long do these actions runs for, and what is waiting for
> them to finish?
That is something that one with hardware and workload can answer.
> These changes seem to drop the priority from above that of the
> highest priority RT process down to that of a default priority
> user process.
> There is no real guarantee that the latter will run 'any time soon'.
Not sure I can follow. Using threaded interrupts will run at FIFO-50 by
default. Workqueue however is SCHED_OTHER. But then it is not bound to
any CPU so it will run on an available CPU.
> Consider some workloads I'm setting up where most of the cpu are
> likely to spend 90%+ of the time running processes under the RT
> scheduler that are processing audio.
>
> It is quite likely that a non-RT thread (especially one bound
> to a specific cpu) won't run for several milliseconds.
> (We have to go through 'hoops' to avoid dropping ethernet frames.)
>
> I'd have thought that some of these kernel threads really
> need to run at a 'middling' RT priority.
The threaded interrupts do this by default. If you run your own RT
threads you need to decide if they are more or less important than the
interrupts.
> David
Sebastian
WARNING: multiple messages have this Message-ID (diff)
From: 'Sebastian Andrzej Siewior' <bigeasy@linutronix.de>
To: David Laight <David.Laight@aculab.com>
Cc: Tyrel Datwyler <tyreld@linux.ibm.com>,
Davidlohr Bueso <dave@stgolabs.net>,
"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
"martin.petersen@oracle.com" <martin.petersen@oracle.com>,
"ejb@linux.ibm.com" <ejb@linux.ibm.com>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>
Subject: Re: [PATCH 09/10] scsi/ibmvscsi: Replace srp tasklet with work
Date: Tue, 14 Jun 2022 15:25:37 +0200 [thread overview]
Message-ID: <YqiMUS0IGtMgyQ6q@linutronix.de> (raw)
In-Reply-To: <7faa88aaf7554545a60561d73597dc4f@AcuMS.aculab.com>
On 2022-06-09 15:46:04 [+0000], David Laight wrote:
> From: Sebastian Andrzej Siewior
> > Sent: 09 June 2022 16:03
> >
> > On 2022-05-30 16:15:11 [-0700], Davidlohr Bueso wrote:
> > > Tasklets have long been deprecated as being too heavy on the system
> > > by running in irq context - and this is not a performance critical
> > > path. If a higher priority process wants to run, it must wait for
> > > the tasklet to finish before doing so.
> > >
> > > Process srps asynchronously in process context in a dedicated
> > > single threaded workqueue.
> >
> > I would suggest threaded interrupts instead. The pattern here is the
> > same as in the previous driver except here is less locking.
>
> How long do these actions runs for, and what is waiting for
> them to finish?
That is something that one with hardware and workload can answer.
> These changes seem to drop the priority from above that of the
> highest priority RT process down to that of a default priority
> user process.
> There is no real guarantee that the latter will run 'any time soon'.
Not sure I can follow. Using threaded interrupts will run at FIFO-50 by
default. Workqueue however is SCHED_OTHER. But then it is not bound to
any CPU so it will run on an available CPU.
> Consider some workloads I'm setting up where most of the cpu are
> likely to spend 90%+ of the time running processes under the RT
> scheduler that are processing audio.
>
> It is quite likely that a non-RT thread (especially one bound
> to a specific cpu) won't run for several milliseconds.
> (We have to go through 'hoops' to avoid dropping ethernet frames.)
>
> I'd have thought that some of these kernel threads really
> need to run at a 'middling' RT priority.
The threaded interrupts do this by default. If you run your own RT
threads you need to decide if they are more or less important than the
interrupts.
> David
Sebastian
next prev parent reply other threads:[~2022-06-14 13:25 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-30 23:15 [PATCH 00/10] scsi: Replace tasklets as BH Davidlohr Bueso
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' [this message]
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=YqiMUS0IGtMgyQ6q@linutronix.de \
--to=bigeasy@linutronix.de \
--cc=David.Laight@aculab.com \
--cc=dave@stgolabs.net \
--cc=ejb@linux.ibm.com \
--cc=linux-scsi@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=martin.petersen@oracle.com \
--cc=tglx@linutronix.de \
--cc=tyreld@linux.ibm.com \
/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.