netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Alastair D'Silva" <alastair@d-silva.org>
To: "'David Laight'" <David.Laight@ACULAB.COM>,
	"'Alastair D'Silva'" <alastair@au1.ibm.com>
Cc: "'Jani Nikula'" <jani.nikula@linux.intel.com>,
	"'Joonas Lahtinen'" <joonas.lahtinen@linux.intel.com>,
	"'Rodrigo Vivi'" <rodrigo.vivi@intel.com>,
	"'David Airlie'" <airlied@linux.ie>,
	"'Daniel Vetter'" <daniel@ffwll.ch>,
	"'Dan Carpenter'" <dan.carpenter@oracle.com>,
	"'Karsten Keil'" <isdn@linux-pingi.de>,
	"'Jassi Brar'" <jassisinghbrar@gmail.com>,
	"'Tom Lendacky'" <thomas.lendacky@amd.com>,
	"'David S. Miller'" <davem@davemloft.net>,
	"'Jose Abreu'" <Jose.Abreu@synopsys.com>,
	"'Kalle Valo'" <kvalo@codeaurora.org>,
	"'Stanislaw Gruszka'" <sgruszka@redhat.com>,
	"'Benson Leung'" <bleung@chromium.org>,
	"'Enric Balletbo i Serra'" <enric.balletbo@collabora.com>,
	"'James E.J. Bottomley'" <jejb@linux.ibm.com>,
	"'Martin K. Petersen'" <martin.petersen@oracle.com>,
	"'Greg Kroah-Hartman'" <gregkh@linuxfoundation.org>,
	"'Alexander Viro'" <viro@zeniv.linux.org.uk>,
	"'Petr Mladek'" <pmladek@suse.com>,
	"'Sergey Senozhatsky'" <sergey.senozhatsky@gmail.com>,
	"'Steven Rostedt'" <rostedt@goodmis.org>,
	"'Andrew Morton'" <akpm@linux-foundation.org>,
	<intel-gfx@lists.freedesktop.org>,
	<dri-devel@lists.freedesktop.org>, <linux-kernel@vger.kernel.org>,
	<netdev@vger.kernel.org>, <ath10k@lists.infradead.org>,
	<linux-wireless@vger.kernel.org>, <linux-scsi@vger.kernel.org>,
	<linux-fbdev@vger.kernel.org>, <devel@driverdev.osuosl.org>,
	<linux-fsdevel@vger.kernel.org>
Subject: RE: [PATCH v2 4/7] lib/hexdump.c: Replace ascii bool in hex_dump_to_buffer with flags
Date: Wed, 8 May 2019 21:41:15 +1000	[thread overview]
Message-ID: <0a1c01d50592$f90f6f00$eb2e4d00$@d-silva.org> (raw)
In-Reply-To: <c98a499a4e824bcd824d5ad53d037c67@AcuMS.aculab.com>

> -----Original Message-----
> From: David Laight <David.Laight@ACULAB.COM>
> Sent: Wednesday, 8 May 2019 7:20 PM
> To: 'Alastair D'Silva' <alastair@au1.ibm.com>; alastair@d-silva.org
> Cc: Jani Nikula <jani.nikula@linux.intel.com>; Joonas Lahtinen
> <joonas.lahtinen@linux.intel.com>; Rodrigo Vivi <rodrigo.vivi@intel.com>;
> David Airlie <airlied@linux.ie>; Daniel Vetter <daniel@ffwll.ch>; Dan
> Carpenter <dan.carpenter@oracle.com>; Karsten Keil <isdn@linux-
> pingi.de>; Jassi Brar <jassisinghbrar@gmail.com>; Tom Lendacky
> <thomas.lendacky@amd.com>; David S. Miller <davem@davemloft.net>;
> Jose Abreu <Jose.Abreu@synopsys.com>; Kalle Valo
> <kvalo@codeaurora.org>; Stanislaw Gruszka <sgruszka@redhat.com>;
> Benson Leung <bleung@chromium.org>; Enric Balletbo i Serra
> <enric.balletbo@collabora.com>; James E.J. Bottomley
> <jejb@linux.ibm.com>; Martin K. Petersen <martin.petersen@oracle.com>;
> Greg Kroah-Hartman <gregkh@linuxfoundation.org>; Alexander Viro
> <viro@zeniv.linux.org.uk>; Petr Mladek <pmladek@suse.com>; Sergey
> Senozhatsky <sergey.senozhatsky@gmail.com>; Steven Rostedt
> <rostedt@goodmis.org>; Andrew Morton <akpm@linux-foundation.org>;
> intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org; linux-
> kernel@vger.kernel.org; netdev@vger.kernel.org;
> ath10k@lists.infradead.org; linux-wireless@vger.kernel.org; linux-
> scsi@vger.kernel.org; linux-fbdev@vger.kernel.org;
> devel@driverdev.osuosl.org; linux-fsdevel@vger.kernel.org
> Subject: RE: [PATCH v2 4/7] lib/hexdump.c: Replace ascii bool in
> hex_dump_to_buffer with flags
> 
> From: Alastair D'Silva
> > Sent: 08 May 2019 08:02
> > To: alastair@d-silva.org
> ...
> > --- a/include/linux/printk.h
> > +++ b/include/linux/printk.h
> > @@ -480,13 +480,13 @@ enum {
> >  	DUMP_PREFIX_OFFSET
> >  };
> >
> > -extern int hex_dump_to_buffer(const void *buf, size_t len, int rowsize,
> > -			      int groupsize, char *linebuf, size_t linebuflen,
> > -			      bool ascii);
> > -
> >  #define HEXDUMP_ASCII			(1 << 0)
> >  #define HEXDUMP_SUPPRESS_REPEATED	(1 << 1)
> 
> These ought to be BIT(0) and BIT(1)

Thanks, I'll address that.

> 
> > +extern int hex_dump_to_buffer(const void *buf, size_t len, int rowsize,
> > +			      int groupsize, char *linebuf, size_t linebuflen,
> > +			      u64 flags);
> 
> Why 'u64 flags' ?
> How many flags do you envisage ??
> Your HEXDUMP_ASCII (etc) flags are currently signed values and might get
> sign extended causing grief.
> 'unsigned int flags' is probably sufficient.

I was trying to avoid having to change the prototype again in the future, but it's not a big deal, if enough work goes in to require more than 32 bits, it can be updated at that point.

> 
> I've not really looked at the code, it seems OTT in places though.

I'll wait for more concrete criticisms here, this it a bit too vague to take any action on.

> If someone copies it somewhere where the performance matters (I've user
> space code which is dominated by its tracing!) then you don't want all the
> function calls and conditionals even if you want some of the functionality.

Calling hexdump (even in it's unaltered form) in performance critical code is always going to suck. As you mentioned before, it's all based around printf. A performance conscious user would be better off building their code around hex_asc_hi/lo instead (see lib/vsprintf.c:hex_string).

-- 
Alastair D'Silva           mob: 0423 762 819
skype: alastair_dsilva     msn: alastair@d-silva.org
blog: http://alastair.d-silva.org    Twitter: @EvilDeece




  reply	other threads:[~2019-05-08 11:49 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-08  7:01 [PATCH v2 0/7] Hexdump Enhancements Alastair D'Silva
2019-05-08  7:01 ` [PATCH v2 1/7] lib/hexdump.c: Fix selftests Alastair D'Silva
2019-05-08  7:01 ` [PATCH v2 2/7] lib/hexdump.c: Relax rowsize checks in hex_dump_to_buffer Alastair D'Silva
2019-05-08  7:01 ` [PATCH v2 3/7] lib/hexdump.c: Optionally suppress lines of repeated bytes Alastair D'Silva
2019-05-09  0:58   ` Randy Dunlap
2019-05-10  0:16     ` Alastair D'Silva
2019-05-13  7:01   ` Geert Uytterhoeven
2019-05-13  7:35     ` Alastair D'Silva
2019-05-08  7:01 ` [PATCH v2 4/7] lib/hexdump.c: Replace ascii bool in hex_dump_to_buffer with flags Alastair D'Silva
2019-05-08  8:58   ` Jani Nikula
2019-05-08  9:14   ` Greg Kroah-Hartman
2019-05-08  9:19   ` David Laight
2019-05-08 11:41     ` Alastair D'Silva [this message]
2019-05-08  7:01 ` [PATCH v2 5/7] lib/hexdump.c: Allow multiple groups to be separated by lines '|' Alastair D'Silva
2019-05-08  7:01 ` [PATCH v2 6/7] lib/hexdump.c: Allow multiple groups to be separated by spaces Alastair D'Silva
2019-05-08  7:01 ` [PATCH v2 7/7] lib/hexdump.c: Optionally retain byte ordering Alastair D'Silva

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='0a1c01d50592$f90f6f00$eb2e4d00$@d-silva.org' \
    --to=alastair@d-silva.org \
    --cc=David.Laight@ACULAB.COM \
    --cc=Jose.Abreu@synopsys.com \
    --cc=airlied@linux.ie \
    --cc=akpm@linux-foundation.org \
    --cc=alastair@au1.ibm.com \
    --cc=ath10k@lists.infradead.org \
    --cc=bleung@chromium.org \
    --cc=dan.carpenter@oracle.com \
    --cc=daniel@ffwll.ch \
    --cc=davem@davemloft.net \
    --cc=devel@driverdev.osuosl.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=enric.balletbo@collabora.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=isdn@linux-pingi.de \
    --cc=jani.nikula@linux.intel.com \
    --cc=jassisinghbrar@gmail.com \
    --cc=jejb@linux.ibm.com \
    --cc=joonas.lahtinen@linux.intel.com \
    --cc=kvalo@codeaurora.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=netdev@vger.kernel.org \
    --cc=pmladek@suse.com \
    --cc=rodrigo.vivi@intel.com \
    --cc=rostedt@goodmis.org \
    --cc=sergey.senozhatsky@gmail.com \
    --cc=sgruszka@redhat.com \
    --cc=thomas.lendacky@amd.com \
    --cc=viro@zeniv.linux.org.uk \
    /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).