linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Life is hard, and then you die" <ronald@innovation.ch>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Henrik Rydberg <rydberg@bitmath.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Lukas Wunner <lukas@wunner.de>,
	Federico Lorenzi <federico@travelground.com>,
	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.
Date: Thu, 28 Mar 2019 03:27:55 -0700	[thread overview]
Message-ID: <20190328102755.GA26446@innovation.ch> (raw)
In-Reply-To: <20190328052917.GB18668@kroah.com>


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

  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.

  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.

  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.


  Cheers,

  Ronald


  reply	other threads:[~2019-03-28 10:27 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-27  1:48 [PATCH v3 0/4] Add Apple SPI keyboard and trackpad driver Ronald Tschalär
2019-03-27  1:48 ` [PATCH v3 1/4] drm/bridge: sil_sii8620: depend on INPUT instead of selecting it Ronald Tschalär
2019-03-27 14:13   ` Andrzej Hajda
2019-03-28  0:07     ` Life is hard, and then you die
2019-03-28 11:48       ` Andrzej Hajda
2019-03-29  9:22         ` Life is hard, and then you die
2019-03-27  1:48 ` [PATCH v3 2/4] lib/hexdump.c: factor out generic hexdump formatting for reuse Ronald Tschalär
2019-03-27  7:46   ` Andy Shevchenko
2019-03-28  0:34     ` Life is hard, and then you die
2019-03-28  9:03       ` Andy Shevchenko
2019-03-28 10:29         ` Life is hard, and then you die
2019-03-27  1:48 ` [PATCH v3 3/4] driver core: add dev_print_hex_dump() logging function Ronald Tschalär
2019-03-27  2:37   ` Greg Kroah-Hartman
2019-03-28  0:28     ` Life is hard, and then you die
2019-03-28  5:29       ` Greg Kroah-Hartman
2019-03-28 10:27         ` Life is hard, and then you die [this message]
2019-03-28 11:29           ` Greg Kroah-Hartman
2019-03-28 12:30             ` Steven Rostedt
2019-04-02  2:47             ` Life is hard, and then you die
2019-04-02  6:33               ` Greg Kroah-Hartman
2019-04-07  1:46                 ` Life is hard, and then you die
2019-04-08 12:07                   ` Andy Shevchenko
2019-03-27  1:48 ` [PATCH v3 4/4] Input: add Apple SPI keyboard and trackpad driver Ronald Tschalär
2019-03-27  9:35   ` Andy Shevchenko
2019-03-27 18:45     ` Greg Kroah-Hartman
2019-03-27 19:15       ` Steven Rostedt
2019-03-27 19:22       ` Andy Shevchenko
2019-03-28  0:24     ` Life is hard, and then you die

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190328102755.GA26446@innovation.ch \
    --to=ronald@innovation.ch \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=federico@travelground.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lukas@wunner.de \
    --cc=rafael@kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=rydberg@bitmath.org \
    --cc=sergey.senozhatsky@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).