Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp747016ybz; Wed, 15 Apr 2020 18:04:47 -0700 (PDT) X-Google-Smtp-Source: APiQypL8fdns39YNE/FUhqxwjldhoDc6VWX3mAxiNYjcSpZqWnY2VV7somH67j/cmW579rmuNbox X-Received: by 2002:a17:906:6b10:: with SMTP id q16mr7535271ejr.170.1586999086951; Wed, 15 Apr 2020 18:04:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586999086; cv=none; d=google.com; s=arc-20160816; b=b2UqyHcCNPpyvaQGeR+O0lu8Mt2OlKmpPqUlJEQsquzNaU53a5P4Eox6Q2j3gACR90 ATKVzwHWpSf4epRG3Ic0fHIcK7votdevyMnaOqVIodGuMFqXjfQZVbMuUo6fQu6ewNbD rMvoyczu9CCV/5zFXlR0HyLu9Q9tM5FRSi7WFFsuqQ6njrt7uKXRAvLX0rIgApQrfC8M 3BSpbUi7FRpSoho/z13rKbofOHIu34JJEHqtFoZt7EjzbdRcNRJU+Vw7a90eQJ0McsoV fM5DkkADOrUhtmG2d+3ec/C6e4hGhQvlI4TAXf8CXU5tkiA8MoW80TbEsWSj5MrMZkcM UKuA== 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 :references:in-reply-to:message-id:subject:cc:to:from:date; bh=3foe01FFJcgZcuwYjQiG13+3T8bGKngy2T8WmQnwNDA=; b=RQQZ/Ir49KKbmAjOHv8z470pyuckc9mBd13tkQrpswUl5CpCa+Bc92QqoNBMQK6lJ4 fA0dUm2qnSf+wdsdpvYDPRpWVACj6TVm2Z+hxzp1Ah8ZQiC8GnxqvOwMjxO1R7w/czao FKrV9DPnMPV1G1UlSFHMxLDVf7JK3fJVxo1YH8bm/zdjI8C9pY8nwA5QWu4ofyiSZoLn mVBYkZvvq2+NOTH97Dlvp0iN1AjIY+OuojRWH9f0d6k7so40A50fke9l1b1i2azMGTp8 Pc53GG2yPbxG8u9hmJp2GtKlOUVjaRq8lQlcRemtyJquw2qiQTvV8JsAnVRwuzqevZqd +6hQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id aq18si11892589ejc.201.2020.04.15.18.04.23; Wed, 15 Apr 2020 18:04:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2437890AbgDOUOe (ORCPT + 99 others); Wed, 15 Apr 2020 16:14:34 -0400 Received: from mail.kernel.org ([198.145.29.99]:46690 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2436830AbgDOUO1 (ORCPT ); Wed, 15 Apr 2020 16:14:27 -0400 Received: from gandalf.local.home (cpe-66-24-58-225.stny.res.rr.com [66.24.58.225]) (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 458BB2076C; Wed, 15 Apr 2020 20:14:26 +0000 (UTC) Date: Wed, 15 Apr 2020 16:14:24 -0400 From: Steven Rostedt To: John Stultz Cc: paulmck@kernel.org, Josh Triplett , lkml , Bjorn Andersson , Saravana Kannan , Todd Kjos , Stephen Boyd , Peter Zijlstra , Thomas Gleixner Subject: Re: On trace_*_rcuidle functions in modules Message-ID: <20200415161424.584d07d3@gandalf.local.home> In-Reply-To: References: <20200415085348.5511a5fe@gandalf.local.home> X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 15 Apr 2020 12:56:52 -0700 John Stultz wrote: > I'm trying to enable the qcom rpmh driver > (drivers/soc/qcom/rpmh-rsc.c) to be a module. As I mentioned to Paul, > it registers a cpu_pm notifier callback, which calls its > __tcs_buffer_write() function. The trace in the __tcs_buffer_write() > function was just converted to using rcuidle to address bugs seen when > it was being called from idle. > > > Currently, Thomas and Peter are working on removing trace events from > > places that don't have RCU enabled, or at least cleaning up the context > > switches from user to kernel to interrupt. > > So does that mean folks would most likely lean to trying to remove the > tracepoint rather than reevaluating allowing the rcuidle call to be > made from the module? > No. The clean up is to try to make the switch from each context small, fast and safe. But what you are describing is the switch to idle, which is a different story and something that there's some talk about cleaning up, but not at the same level. Especially if there's more complex code that is happening with RCU watching. Looking at the commit that keeps trace_*_rcuidle() code out: 7ece55a4a3a04a ("trace: Don't declare trace_*_rcuidle functions in modules") Which was added because the rcuidle variant called RCU code that was not exported either. Which would have the same issue now as rcu_irq_exit_irqson() is also not exported. Which would be needed. Hmm, isn't module code itself synchronized via RCU. Then having module code being called without RCU "watching" could be dangerous? -- Steve