Re: [PATCH v4 3/3] net/xen-netback: Don't mix hexa and decimal with 0x in the printf format

From: Joe Perches
Date: Tue Jun 16 2015 - 19:55:37 EST


On Wed, 2015-06-17 at 01:29 +0300, Sergei Shtylyov wrote:
> Hello.
>
> On 06/17/2015 01:09 AM, Joe Perches wrote:
>
> >>> Append 0x to all %x in order to avoid while reading when there is other
> >>> decimal value in the log.
>
> > []
>
> >>> @@ -874,7 +874,7 @@ static inline void xenvif_grant_handle_set(struct xenvif_queue *queue,
> >>> if (unlikely(queue->grant_tx_handle[pending_idx] !=
> >>> NETBACK_INVALID_HANDLE)) {
> >>> netdev_err(queue->vif->dev,
> >>> - "Trying to overwrite active handle! pending_idx: %x\n",
> >>> + "Trying to overwrite active handle! pending_idx: 0x%x\n",
>
> >> Using "%#x" is shorter ind does the same.
>
> > That's true, but it's also far less common.
>
> Which is a pity... People just don't know the format specifiers well
> enough. :-(
>
> > $ git grep -E "%#[\*\d\.]*x" | wc -l
> > 1419
> > $ git grep "0x%" | wc -l
> > 29844
>
> Which means 29 KB could theoretically be saved on allyesconfig build. :-)
> (Actually less since the width specifiers will likely need to be fixed where
> present.)

And less than that because a lot of these are in
arch specific code.

0x%x is easier and simpler to visualize than %#x.

But you are welcome to try to make the kernel smaller.
One byte at a time.

There are ~14.5k uses of 0x%x in ~10.5k lines and
~2600 files that would be changed.

That's a lot of lines and a lot of patches.

$ git grep --name-only "0x%x" | xargs sed -i -e 's/0x%x/%#x/g'
$ git diff | wc
96250 415388 3949872

Only a 4M patch.

The pretty common (~5k) "0x%08x" would be "%#010x"
so that doesn't save any space.

but this one's a ~3.5M patch.

$ git grep --name-only -P "0x%\d+\w*x" | xargs perl -p -i -e 's/0x%0(\d+)(\w*)x/"\%#0" . eval($1 + 2) . "$2x"/eg'
$ git diff | wc
80857 344565 3306990

enjoy...

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/