Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp3688631ybv; Mon, 10 Feb 2020 04:44:45 -0800 (PST) X-Google-Smtp-Source: APXvYqx0FC0EXI1eefXTejNw0USzJsYwzc3059ldXGcxWn1Z6kuEteZKhlI48VE1CvhlLNwOHcIs X-Received: by 2002:a05:6830:11:: with SMTP id c17mr896335otp.360.1581338685885; Mon, 10 Feb 2020 04:44:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581338685; cv=none; d=google.com; s=arc-20160816; b=mm8DG+L4A8LtR1ndql8pnhey90mLadU3tGnrWkN5OOjVUyxJs5ns3y9MaIxYrxrnRO fUaRyJRh97qkLXMCMm/ow3nTzvGUe/tbYtkQUe7o5X+reGePy21ZN9fdup+c5F9TGru0 i4bZDISs0EvzeceVQmcXgnoSS0+CrAq9WxZ2GngxMdvOZTZFaGaxXUW6vUFP1DL6UJCc aN+o4si9vHs/9qjgf0vUFNETFl6ScBrOGTarmpplYD5EvhVe8m5DZAoKnukBDczlPNcB JMmnNToG8EraBWeJcP7nTGknmjlPfUq9iPX1Y+bI/D5wtWKg475lyxw6cfCRWAua+vrz 5QXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=hPo71j9ACY7/zanU4yiYdymWz1orw5i8qFxqnadjEdw=; b=Hgjh2hq0n4/g2hOja+W6xlR0X9kuQ9vHsy0Pa/mgaaE3sjjCzX2I9cc4pL/mWv2YKn hcOed6oxI82ao0Uru/Z/QxSeNi4KquMfi7LQkIxJmBgSaQpZUpKritSOA2iaZzS1qxtp TaFmzBbxSm/JmROrXlUcbbyxmdO+8SFMRCpxuXSkw+eLvKB1vrxWMaccEtXg/NEPTkPt OLG2o+NdlLG2VQCj0rCbGWnXXmQtHWho7spUtwoJe/8rkRhOVoTuOBUwBs2fOm1WrsXL g9nNcYBEMJq7L6dxwvxDXFHwAX971gME2d1pB1KsXDr9D/mf9Y2tUhS3re/6rvROfqor xtqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=b9eA1cSL; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d28si133404otc.123.2020.02.10.04.44.34; Mon, 10 Feb 2020 04:44:45 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=b9eA1cSL; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730605AbgBJMoQ (ORCPT + 99 others); Mon, 10 Feb 2020 07:44:16 -0500 Received: from mail.kernel.org ([198.145.29.99]:40600 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729742AbgBJMk3 (ORCPT ); Mon, 10 Feb 2020 07:40:29 -0500 Received: from localhost (unknown [209.37.97.194]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id EE3882051A; Mon, 10 Feb 2020 12:40:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1581338428; bh=AvajLqGpUfAavsPcZmDIGys8maLrfStkNxpveatiF0E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=b9eA1cSLol8oEMHqxz00/4MgP0L1SUmobFGBr93YFlnZ0Y436gridvbs1uzJVl6pV doD133L8NdypHtjN0nfZppdvGC8jVAzTWPoxQWPBEAIeOE+0YrUTHbS0wmb/r1bAtE DB+6nYX8ddnnqPLYx3zM7HtxCh8MJuzvW2o1J6jA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, "Joel Fernandes (Google)" , "Steven Rostedt (VMware)" , Sasha Levin Subject: [PATCH 5.5 152/367] ftrace: Add comment to why rcu_dereference_sched() is open coded Date: Mon, 10 Feb 2020 04:31:05 -0800 Message-Id: <20200210122438.861741278@linuxfoundation.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200210122423.695146547@linuxfoundation.org> References: <20200210122423.695146547@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Steven Rostedt (VMware) [ Upstream commit 16052dd5bdfa16dbe18d8c1d4cde2ddab9d23177 ] Because the function graph tracer can execute in sections where RCU is not "watching", the rcu_dereference_sched() for the has needs to be open coded. This is fine because the RCU "flavor" of the ftrace hash is protected by its own RCU handling (it does its own little synchronization on every CPU and does not rely on RCU sched). Acked-by: Joel Fernandes (Google) Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Sasha Levin --- kernel/trace/trace.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index 497defe9ed264..b769638f005c7 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h @@ -961,6 +961,11 @@ static inline int ftrace_graph_addr(struct ftrace_graph_ent *trace) preempt_disable_notrace(); + /* + * Have to open code "rcu_dereference_sched()" because the + * function graph tracer can be called when RCU is not + * "watching". + */ hash = rcu_dereference_protected(ftrace_graph_hash, !preemptible()); if (ftrace_hash_empty(hash)) { @@ -1008,6 +1013,11 @@ static inline int ftrace_graph_notrace_addr(unsigned long addr) preempt_disable_notrace(); + /* + * Have to open code "rcu_dereference_sched()" because the + * function graph tracer can be called when RCU is not + * "watching". + */ notrace_hash = rcu_dereference_protected(ftrace_graph_notrace_hash, !preemptible()); -- 2.20.1