Re: [tip:sched/core] sched/rt: Simplify the IPI based RT balancing logic

From: Pavan Kondeti
Date: Fri Jan 19 2018 - 23:57:09 EST


Hi Steve,

On Fri, Jan 19, 2018 at 02:51:15PM -0500, Steven Rostedt wrote:
> On Sat, 20 Jan 2018 00:27:56 +0530
> Pavan Kondeti <pkondeti@xxxxxxxxxxxxxx> wrote:
>
> > Hi Steve,
> >
> > Thanks for the patch.
> >
> > On Fri, Jan 19, 2018 at 01:12:54PM -0500, Steven Rostedt wrote:
> > > On Fri, 19 Jan 2018 13:11:21 -0500
> > > Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> > >
> > > > void rto_push_irq_work_func(struct irq_work *work)
> > > > {
> > > > + struct root_domain *rd =
> > > > + container_of(work, struct root_domain, rto_push_work);
> > > > struct rq *rq;
> > >
> > > Notice that I also remove the dependency on rq from getting the rd.
> > >
> >
> > Nice. This snippet it self solves the original problem, I reported.
> > I will test your patch and let you know the results.
> >
> >
>
> I'll break the patch up into two then. One with this snippet, and the
> other with the rd ref counting.
>

Yeah, this snippet fixed the original problem.

I have not seen "use after free" of rd in my testing. But I can see
we are operating on a rd for which refcount is 0. After applying your
refcount patch, it never happened. I also verified that we are freeing
the rd via IRQ work by dropping the last reference.

Thanks for your help with the patches. Please copy linux-stable for
the 1st patch.

Feel free to use
Tested-by: Pavankumar Kondeti <pkondeti@xxxxxxxxxxxxxx>

Thanks,
Pavan
--
Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.