Quoting Lina Iyer (2020-07-23 10:42:54) > On Wed, Jul 22 2020 at 19:01 -0600, Stephen Boyd wrote: > >The busy loop in rpmh_rsc_send_data() is written with the assumption > >that the udelay will be preempted by the tcs_tx_done() irq handler when > >the TCS slots are all full. This doesn't hold true when the calling > >thread is an irqthread and the tcs_tx_done() irq is also an irqthread. > >That's because kernel irqthreads are SCHED_FIFO and thus need to > >voluntarily give up priority by calling into the scheduler so that other > >threads can run. > > > >I see RCU stalls when I boot with irqthreads on the kernel commandline > >because the modem remoteproc driver is trying to send an rpmh async > >message from an irqthread that needs to give up the CPU for the rpmh > >irqthread to run and clear out tcs slots. > > > Would this be not better, if we we use a threaded IRQ handler or offload > tx_done to another waitqueue instead of handling it in IRQ handler? > Are you asking if jitter is reduced when the rpmh irq is made into a threaded irq? I haven't done any benchmarking to see if it improves things.