Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp751601ybz; Wed, 15 Apr 2020 18:10:13 -0700 (PDT) X-Google-Smtp-Source: APiQypLLARWnRQUWKynfgdvHRmzxxEuxxZCJ2zm82KlKiu/DynzKWQ5J3iOu8VAjjqldk+SW0cKO X-Received: by 2002:aa7:d683:: with SMTP id d3mr26294421edr.268.1586999413662; Wed, 15 Apr 2020 18:10:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586999413; cv=none; d=google.com; s=arc-20160816; b=V9ddWjhn5+53ZNt1aPAptDrjkQjNZC+iHUB/CNBAg8LHLz2R82vgiEJi7EvTpIAvvP wxH4k47JQ+7XfCxa5KXLWurLjfPvW/gJiBtRqQP/uPSB3TkscheDgn3eivcWglsQjPlZ wGKtQRSriTA8xTghJjFUHfiw2gd59Ln41IIlQ0eWGawwdtW2Xx7xORouKcrAbVAGI3/X eYcBp47FCayHhL0vDvgIuX8o+opL+MlRRa1+pooajmY+keJn14VZUeMiK5Y9PAyIUAQ5 CITCmV1pT5rIJWIKOp23Gd9UlAh8dOPL+4Z2OBAmw0vmUG8e4pJcSY0L+pXXnlBxFIU0 Qk3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=N2S2rvnMUv9EkeNc34T2xFMYxr/qxEfAFfVcqbGmQws=; b=pIiL6sCc+CHWEdWswLGJDmtLpY0aiV3W0eRPD9RJSgb+280QYMdZobTNtMP/x37ARK xw02f/Ym+YGCt7QLdnOxgAXTtsk1rVPgxaf7FqdnIflkCSBxKzHIylxfGveTAEJzJ0T5 kcXohADJe8mF9t/tuF4NWaUVBanYSmlRBQXXCPEvCjANlYpHQXFxE4iIjb7s1NndCmAz oLfVsu8JUnMxYbWEIumVlleAvAuImPGOIZFEnpBKPnLwauT4FsX0CMlJZlgW9tfPQL/q /L00GvJo892WUylJ+4DiffTy5WTM+q1JluG/WMTGR+g+wMUtnsRzeBFuUnLLVdXiDbRJ Hrww== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=z3He7Hy0; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i6si13059478edg.339.2020.04.15.18.09.46; Wed, 15 Apr 2020 18:10:13 -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; dkim=pass header.i=@linaro.org header.s=google header.b=z3He7Hy0; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2438730AbgDOVCS (ORCPT + 99 others); Wed, 15 Apr 2020 17:02:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43546 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S2438334AbgDOVCQ (ORCPT ); Wed, 15 Apr 2020 17:02:16 -0400 Received: from mail-oi1-x231.google.com (mail-oi1-x231.google.com [IPv6:2607:f8b0:4864:20::231]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C7C72C061A0C for ; Wed, 15 Apr 2020 14:02:16 -0700 (PDT) Received: by mail-oi1-x231.google.com with SMTP id k9so14745417oia.8 for ; Wed, 15 Apr 2020 14:02:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=N2S2rvnMUv9EkeNc34T2xFMYxr/qxEfAFfVcqbGmQws=; b=z3He7Hy0epqDTOkSXK64WVlICvSnCcFHqsCYx/uvNSAbmtTkmCsUWNLV19wMHEgF2m ZO8aR0VI3mv6ysj8ZeCUBW2XsCOtwIE9u7tp3Ra3SeNpWtFy2tcsRR+GDnVrIDf5B3xb k31K4FR6UdMcRk5Wf3LTLkAXxo+Lwb4j/Gb2UiHNXTqgFnARQF2eMS2PQxV56Inh/JY0 gRW9Gjligh7X9oBNxz88d+bjHoTHwmeKY/3Jk5J5qUyjbxBOjKz5nHsu3FExcFxyQNAQ LuB7Z0IlZYLz8Y1sWaxEvwKwadCasaCgLnF3fnIIPykEZVkVrRC2NnZ/bX1H5pcP3Ndt fe5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=N2S2rvnMUv9EkeNc34T2xFMYxr/qxEfAFfVcqbGmQws=; b=LyLE7ym5b6/kBRF8g7y1rpz4Aj5Ed+lzPNsNEmhSfgUbaxHoTPnZaHGGsKCTe+sUpz 2T433uAxWcPBaoWnJPqDq0QEQeKfTomyrrjwek2wtS4+rou7F6CrPyE19BZzP16fOeKr jdH1XtBGyrZ5ufr6oG6fADNLAuhrsmvQ0CARldkL3uTK7rHcPelstFud2GIFh1QcW9r2 Q6Gzp0rC7gH+kfc2m7vfKTxQew7whKvXDZ9AAsGZs0mq7wgQkGlsPcp7x5L0ZEYjObJS GVvRXyoWoSP7zW038mfvCZLiSf0Lb0iPZOHfGDBaRtbKUMktOJRQrWb6kRiI4wiz/PJ4 kuwA== X-Gm-Message-State: AGi0PuYByaNZYf84Xml7/2mGyee67n4Q2d7Gyg0rTpYuS8RU9X3SNcPf 8oyV0/GQDky1AJmTSlED7iBm3mjxvmPBv054klOoIw== X-Received: by 2002:a05:6808:a0a:: with SMTP id n10mr915668oij.10.1586984535153; Wed, 15 Apr 2020 14:02:15 -0700 (PDT) MIME-Version: 1.0 References: <20200415085348.5511a5fe@gandalf.local.home> <20200415161424.584d07d3@gandalf.local.home> <20200415164116.40564f2c@gandalf.local.home> In-Reply-To: <20200415164116.40564f2c@gandalf.local.home> From: John Stultz Date: Wed, 15 Apr 2020 14:02:04 -0700 Message-ID: Subject: Re: On trace_*_rcuidle functions in modules To: Steven Rostedt Cc: paulmck@kernel.org, Josh Triplett , lkml , Bjorn Andersson , Saravana Kannan , Todd Kjos , Stephen Boyd , Peter Zijlstra , Thomas Gleixner Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Apr 15, 2020 at 1:41 PM Steven Rostedt wrote: > > On Wed, 15 Apr 2020 13:17:53 -0700 > John Stultz wrote: > > > > Hmm, isn't module code itself synchronized via RCU. Then having module code > > > being called without RCU "watching" could be dangerous? > > > > I'm not sure I'm following you here. Could you explain more? > > So how does this code get registered to be called as a module? The driver is registered via standard platform_driver_register() called via module_initcall. The callback is then registered via cpu_pm_register_notifier() in the driver's probe function. > And if it is > registered, I'm guessing it needs to be unregistered too. How would that be > synchronized? Usually, calling synchronize_rcu() is done after > unregistering, but if that code is called without RCU watching, it is > possible synchronize_rcu() can finish before that code is released. So I'm actually trying to enable the driver to be loaded as a permanent module, so there's no remove hook (so much depends on the driver that you couldn't remove it and have anything work - we just want it to be modularly loaded so all devices don't have to pay the cost of including the driver). So in my case your concerns may not be a problem, but I guess generally it might. Though I'd hope the callback would be unregistered (and whatever waiting for the grace period to complete be done) before the module removal is complete. But maybe I'm still missing your point? thanks -john