Re: [PATCH] bus: mhi: core: Disable pre-emption for data events tasklet processing

From: Hemant Kumar
Date: Mon Jun 21 2021 - 13:57:22 EST


On Sat, 2021-06-19 at 13:14 +0530, Manivannan Sadhasivam wrote:
> On Fri, Jun 18, 2021 at 03:23:05PM -0700, Bhaumik Bhatt wrote:
> >
> > With spin_lock_bh(), it is possible that a tasklet processing data
> > events gets scheduled out if another higher priority tasklet is
Needs some re-wording. What we observed was threded irq storms and in
the past we observed some RT tasks preempting MHI tasklet for long
time.
> > ready to run. While the tasklet is sleeping, it can hold the event
Not allowed to sleep in tasklet context.
> > ring spinlock and block another tasklet, for example, one
> > processing
> > an M0 state change event, from acquiring it. This can starve the
> > core which blocks in an attempt to acquire the spinlock until it
> > gets released. Fix this issue by disabling pre-emption on the core
> > processing data events and allow it to run to completion such that
> > other tasklets do not block for long periods.
> >
> Are you sure?
>
> IIUC, the tasklets priority is only used while trying to schedule the
> next pending tasklet. But I don't think a high priority tasklet can
> preempt the low priority one.
>
> Please correct me if I'm wrong.
>
> Thanks,
> Mani
>
[..]
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project