Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1765673AbdDSPcU (ORCPT ); Wed, 19 Apr 2017 11:32:20 -0400 Received: from mail-it0-f52.google.com ([209.85.214.52]:37189 "EHLO mail-it0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1764797AbdDSPcO (ORCPT ); Wed, 19 Apr 2017 11:32:14 -0400 Date: Wed, 19 Apr 2017 23:30:45 +0800 From: Leo Yan To: Mathieu Poirier Cc: Jonathan Corbet , Rob Herring , Mark Rutland , Wei Xu , Catalin Marinas , Will Deacon , Andy Gross , David Brown , Suzuki K Poulose , Stephen Boyd , linux-doc@vger.kernel.org, "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , linux-arm-msm@vger.kernel.org, linux-soc@vger.kernel.org, Mike Leach , Sudeep Holla Subject: Re: [PATCH v6 6/8] coresight: add support for CPU debug module Message-ID: <20170419153045.GB23319@leoy-linaro> References: <1491485461-22800-1-git-send-email-leo.yan@linaro.org> <1491485461-22800-7-git-send-email-leo.yan@linaro.org> <20170418174050.GC22806@linaro.org> <20170419001807.GB8524@leoy-linaro> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2270 Lines: 52 On Wed, Apr 19, 2017 at 08:52:12AM -0600, Mathieu Poirier wrote: [...] > >> > +static bool debug_enable; > >> > +module_param_named(enable, debug_enable, bool, 0600); > >> > +MODULE_PARM_DESC(enable, "Knob to enable debug functionality " > >> > + "(default is 0, which means is disabled by default)"); > >> > >> For this driver we have a debugFS interface so I question the validity of a > >> kernel module parameter. Other than adding complexity to the code it offers no > >> real added value. If a user is to insmod a module, it is just as easy to switch > >> on the functionality using debugFS in a second step. > > > > This module parameter can be used for kernel command line, so > > it's useful when user wants to dynamically turn on/off the > > functionality at boot up time. > > > > Does this make sense for you? Removing this parameter is okay for > > me, but this means users need to decide if use it by Kernel config > > with static building in. This is a bit contradictory with before's > > discussion. > > My hope was to use the kernel command line and the debugFS interface, > avoiding the module parameter. Look at what the baycom_par and > blacklist drivers are doing with the "__setup()" function and see if > we can void a module parameter. If not then let it be, unless someone > else has a better idea. > > [1]. drivers/net/hamradio/baycom_par.c > [2]. drivers/s390/cio/blacklist.c This driver supports module mode. So we can choose to use either module parameter or __setup(). But as described in the file Documentation/admin-guide/kernel-parameters.rst, the module parameter is more flexible to be used at boot time or insmod the module: "Parameters for modules which are built into the kernel need to be specified on the kernel command line. modprobe looks through the kernel command line (/proc/cmdline) and collects module parameters when it loads a module, so the kernel command line can be used for loadable modules too." __setup() cannot support module mode, and when use __setup(), we need register one callback function for it. The callback function is friendly to parse complex parameters rather than module parameter. but it's not necessary for this case. So I'm bias to use module parameter :) Thanks, Leo Yan