[PATCH 09/10] scsi/ibmvscsi: Replace srp tasklet with work
'Sebastian Andrzej Siewior'
bigeasy at linutronix.de
Tue Jun 14 23:25:37 AEST 2022
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
More information about the Linuxppc-dev
mailing list