From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754247AbeATE4e (ORCPT ); Fri, 19 Jan 2018 23:56:34 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:35612 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753151AbeATE4Y (ORCPT ); Fri, 19 Jan 2018 23:56:24 -0500 DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 7EC7E60398 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=pkondeti@codeaurora.org Date: Sat, 20 Jan 2018 10:26:16 +0530 From: Pavan Kondeti To: Steven Rostedt Cc: williams@redhat.com, Ingo Molnar , LKML , Peter Zijlstra , Thomas Gleixner , bristot@redhat.com, jkacur@redhat.com, efault@gmx.de, hpa@zytor.com, torvalds@linux-foundation.org, swood@redhat.com, linux-tip-commits@vger.kernel.org Subject: Re: [tip:sched/core] sched/rt: Simplify the IPI based RT balancing logic Message-ID: <20180120045616.GA25886@codeaurora.org> References: <20170424114732.1aac6dc4@gandalf.local.home> <20180119100353.7f9f5154@gandalf.local.home> <20180119174617.GA6563@codeaurora.org> <20180119131121.22dac3d3@gandalf.local.home> <20180119131254.69a9d848@gandalf.local.home> <20180119185756.GC6563@codeaurora.org> <20180119145115.139e0784@gandalf.local.home> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180119145115.139e0784@gandalf.local.home> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 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 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 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.