Received: by 2002:a25:5b86:0:0:0:0:0 with SMTP id p128csp378928ybb; Thu, 28 Mar 2019 04:32:44 -0700 (PDT) X-Google-Smtp-Source: APXvYqzi6x9zPwqVNas4xsqwXqP8Zieb34pF1Cc/X2oxgRuVpg1Y3wKhg/ZWo1g8GQ3soc3ZFJTA X-Received: by 2002:a63:5a1d:: with SMTP id o29mr35054661pgb.320.1553772764648; Thu, 28 Mar 2019 04:32:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553772764; cv=none; d=google.com; s=arc-20160816; b=yeyXTtk6WehTB+Vr9uU8uWuLcdn+LuSFG+6DHGyEnFWgxWJ4g2sMg81KSs6BBFoYo9 sXgwAHMqsBFUmq0Vl3CuZf2KDiZ0oj75pwAN7xbbYMcaJlf8Qqxdtcpt2TSCH8TBbWOM uyv7mqdZMxkfwDQ361Ynd4xtE3Sad+22EOjiJtdMhCuD9CVWo4zdSbOqLz35qcOPqrqw /KQGLkD3mlvcgOYkhYQWq3hZuOZTajMMMbOOLcywdwD5fBa5QO9IekHa05Rmq4pgcwe4 2ZGbiukG/d8CZTLEXm+E8SwrhdB0wpVAYQpRGVTeScmFJwTo72WEGi5pdkLtWO3GPqyT MShQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=ykjX/W6xQiI53yT76nNCSZa5RQcSBhKPHp1SfA8nrGU=; b=lHXmagTb/umw66AGIOdX2iH/13IPGDAMFFmbh54e4ruk23d5pKxzd+Sx+Q3iu56Cg2 SPXOcLb0Mw8UJwxm7gUQL/+J+adExDj1sj9Zahkxfxd6KhOHRsr/DdZl/dxuOdShNwgl DOd9u20Q7n6dRvnawRlLe+GQrwOyyRLdcJudWlHiHmp/AhedF6uYKfIdUjV1iB1GWLTy Q/tLf6mEuVCV8hd8EOLYW6p+8StdA2FqJG1bFk9pIe7mnCgw+Kd9lHG3khn0EoluppPX gGVH1ToUiWTfwsa3yneW+86dTMH7Al7AsfrzyRlbYl8JNjymm3hTWMKRquObOAG68vUS NZ8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=DLrw3Jfm; 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 73si22801606pld.156.2019.03.28.04.32.28; Thu, 28 Mar 2019 04:32:44 -0700 (PDT) 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=DLrw3Jfm; 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 S1726817AbfC1L36 (ORCPT + 99 others); Thu, 28 Mar 2019 07:29:58 -0400 Received: from mail.kernel.org ([198.145.29.99]:48012 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726173AbfC1L36 (ORCPT ); Thu, 28 Mar 2019 07:29:58 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (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 103922075E; Thu, 28 Mar 2019 11:29:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1553772596; bh=9iSpTUV713ibpEKBUDxFbyVaos8pRZJfXV5YPT2qxgA=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=DLrw3JfmaR0GP3o6BW7KnVzhBynpst0zr4CDPhmxGwWWBKyBEXrAd6LUSiu/G33xK 3WyDgeiN04POxl5NFti6sK2bT0r3AOxW3gAUPVMMYP/ciYMcoVtAnnMz6ihAovimC6 t4JFP/2TPDqSjIUWNiXxz2nDeYCp49xx20XfbpK8= Date: Thu, 28 Mar 2019 12:29:52 +0100 From: Greg Kroah-Hartman To: "Life is hard, and then you die" Cc: Dmitry Torokhov , Henrik Rydberg , Andy Shevchenko , Sergey Senozhatsky , Steven Rostedt , "Rafael J. Wysocki" , Lukas Wunner , Federico Lorenzi , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 3/4] driver core: add dev_print_hex_dump() logging function. Message-ID: <20190328112952.GA2232@kroah.com> References: <20190327014807.7472-1-ronald@innovation.ch> <20190327014807.7472-4-ronald@innovation.ch> <20190327023757.GB20766@kroah.com> <20190328002817.GF24753@innovation.ch> <20190328052917.GB18668@kroah.com> <20190328102755.GA26446@innovation.ch> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20190328102755.GA26446@innovation.ch> User-Agent: Mutt/1.11.4 (2019-03-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Mar 28, 2019 at 03:27:55AM -0700, Life is hard, and then you die wrote: > > On Thu, Mar 28, 2019 at 06:29:17AM +0100, Greg Kroah-Hartman wrote: > > On Wed, Mar 27, 2019 at 05:28:17PM -0700, Life is hard, and then you die wrote: > > > > > > On Wed, Mar 27, 2019 at 11:37:57AM +0900, Greg Kroah-Hartman wrote: > > > > On Tue, Mar 26, 2019 at 06:48:06PM -0700, Ronald Tschal?r wrote: > > > > > This is the dev_xxx() analog to print_hex_dump(), using dev_printk() > > > > > instead of straight printk() to match other dev_xxx() logging functions. > > > > > --- > > > > > drivers/base/core.c | 43 ++++++++++++++++++++++++++++++++++++++++++ > > > > > include/linux/device.h | 15 +++++++++++++++ > > > > > 2 files changed, 58 insertions(+) > > > > > > > > No signed-off-by? > > > > > > Aargh! Apologies, fixed for the future. > > > > > > > Anyway, no, please do not do this. Please do not dump large hex values > > > > like this to the kernel log, it does not help anyone. > > > > > > > > You can do this while debugging, sure, but not for "real" kernel code. > > > > > > As used by this driver, it is definitely called for debugging only and > > > must be explicitly enabled via a module param. But having the ability > > > for folks to easily generate and print out debugging info has proven > > > quite valuable. > > > > We have dynamic debugging, no need for module parameters at all. This > > isn't the 1990's anymore :) > > I am aware of dynamic debugging, but there are several issues with it > from the perspective of the logging I'm doing here (I mentioned these > in response to an earlier review already): > > 1. Dynamic debugging can't be enabled at a function or line level on > the kernel command line, so this means that to debug issues > during boot you have to enable everything, which can be way too > verbose You can, and should enable it at a function or line level by writing to the proper kernel file in debugfs. You have read Documentation/admin-guide/dynamic-debug-howto.rst, right? No need to do anything on the command line, that's so old-school :) > 2. The expressions to enable the individual logging statements are > quite brittle (in particular the line-based ones) since they > (may) change any time the code is changed - having stable > commands to give to users and put in documentation (e.g. > "echo 0x200 > /sys/module/applespi/parameters/debug") is > quite valuable. > > One way to work around this would be to put every single logging > statement in a function of its own, thereby ensuring a stable > name is associated with each one. Again, read the documentation, this works today as-is. > 3. In at least two places we log different types of packets in the > same lines of code (protected by a "if (log_mask & PKT_TYPE)") - > dynamic-debug would only allow enabling or disabling logging of > all packets. This could be worked around by creating a separate > (but essentially duplicate) logging function for each packet type > and some lookup table to call the appropriate one. Not very > pretty IMO, though. True, but you can use tracepoints as well, that would probably be much easier when you are logging data streams. You can also use an ebpf program with the tracepoints to log just what you need/want to when you want to as well. > 4. In a couple places we log both the sent command and the received > response, with the log-mask determining for which types of > packets to do this. With a log mask there is one bit to set to > get both logged; with dynamic debugging you'd have to enable the > writing and receiving parts separately (not a huge deal, but yet > one place where things are a bit more complicated than > necessary). > > Except for the first, none of these are insurmountable, but together > they don't make dynamic debugging very attractive for this sort of > logging. Look into it some more, we have all of this covered today, no need for just a single driver to do something fancy on its own :) thanks, greg k-h