2015-06-16 19:11:40

by Julien Grall

[permalink] [raw]
Subject: [PATCH v4 0/3] net/xen: Clean up

Hi,

The first 2 patches was originally part of the the Xen 64KB series [1].
Although, I think they can go, assuming everything will be acked/reviewed,
without waiting the rest of the 64KB series.

The third patch as been added in this version.

Regards,

Julien Grall (3):
net/xen-netfront: Correct printf format in xennet_get_responses
net/xen-netback: Remove unused code in xenvif_rx_action
net/xen-netback: Don't mix hexa and decimal with 0x in the printf
format

drivers/net/xen-netback/netback.c | 19 +++++++------------
drivers/net/xen-netfront.c | 2 +-
2 files changed, 8 insertions(+), 13 deletions(-)

--
2.1.4


2015-06-16 19:12:13

by Julien Grall

[permalink] [raw]
Subject: [PATCH v4 1/3] net/xen-netfront: Correct printf format in xennet_get_responses

rx->status is an int16_t, print it using %d rather than %u in order to
have a meaningful value when the field is negative.

Also use %u rather than %x for rx->offset.

Signed-off-by: Julien Grall <[email protected]>
Reviewed-by: David Vrabel <[email protected]>
Cc: Konrad Rzeszutek Wilk <[email protected]>
Cc: Boris Ostrovsky <[email protected]>
Cc: [email protected]

---
Changes in v4:
- Use %u for the rx->offset because offset is unsigned

Changes in v3:
- Use %d for the rx->offset too.

Changes in v2:
- Add David's Reviewed-by
---
drivers/net/xen-netfront.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index e031c94..281720f 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -733,7 +733,7 @@ static int xennet_get_responses(struct netfront_queue *queue,
if (unlikely(rx->status < 0 ||
rx->offset + rx->status > PAGE_SIZE)) {
if (net_ratelimit())
- dev_warn(dev, "rx->offset: %x, size: %u\n",
+ dev_warn(dev, "rx->offset: %u, size: %d\n",
rx->offset, rx->status);
xennet_move_rx_slot(queue, skb, ref);
err = -EINVAL;
--
2.1.4

2015-06-16 19:12:07

by Julien Grall

[permalink] [raw]
Subject: [PATCH v4 2/3] net/xen-netback: Remove unused code in xenvif_rx_action

The variables old_req_cons and ring_slots_used are assigned but never
used since commit 1650d5455bd2dc6b5ee134bd6fc1a3236c266b5b "xen-netback:
always fully coalesce guest Rx packets".

Signed-off-by: Julien Grall <[email protected]>
Acked-by: Wei Liu <[email protected]>
Cc: Ian Campbell <[email protected]>
Cc: [email protected]

---
Changes in v2:
- Add Wei's Acked-by
---
drivers/net/xen-netback/netback.c | 5 -----
1 file changed, 5 deletions(-)

diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
index 0d25943..ba3ae30 100644
--- a/drivers/net/xen-netback/netback.c
+++ b/drivers/net/xen-netback/netback.c
@@ -515,14 +515,9 @@ static void xenvif_rx_action(struct xenvif_queue *queue)

while (xenvif_rx_ring_slots_available(queue, XEN_NETBK_RX_SLOTS_MAX)
&& (skb = xenvif_rx_dequeue(queue)) != NULL) {
- RING_IDX old_req_cons;
- RING_IDX ring_slots_used;
-
queue->last_rx_time = jiffies;

- old_req_cons = queue->rx.req_cons;
XENVIF_RX_CB(skb)->meta_slots_used = xenvif_gop_skb(skb, &npo, queue);
- ring_slots_used = queue->rx.req_cons - old_req_cons;

__skb_queue_tail(&rxq, skb);
}
--
2.1.4

2015-06-16 19:12:45

by Julien Grall

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

Append 0x to all %x in order to avoid while reading when there is other
decimal value in the log.

Also replace some of the hexadecimal print to decimal to uniformize the
format with netfront.

Signed-off-by: Julien Grall <[email protected]>
Cc: Wei Liu <[email protected]>
Cc: Ian Campbell <[email protected]>
Cc: [email protected]

---
Changes in v4:
- Patch added
---
drivers/net/xen-netback/netback.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
index ba3ae30..11bd9d8 100644
--- a/drivers/net/xen-netback/netback.c
+++ b/drivers/net/xen-netback/netback.c
@@ -748,7 +748,7 @@ static int xenvif_count_requests(struct xenvif_queue *queue,
slots++;

if (unlikely((txp->offset + txp->size) > PAGE_SIZE)) {
- netdev_err(queue->vif->dev, "Cross page boundary, txp->offset: %x, size: %u\n",
+ netdev_err(queue->vif->dev, "Cross page boundary, txp->offset: %u, size: %u\n",
txp->offset, txp->size);
xenvif_fatal_tx_err(queue->vif);
return -EINVAL;
@@ -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",
pending_idx);
BUG();
}
@@ -887,7 +887,7 @@ static inline void xenvif_grant_handle_reset(struct xenvif_queue *queue,
if (unlikely(queue->grant_tx_handle[pending_idx] ==
NETBACK_INVALID_HANDLE)) {
netdev_err(queue->vif->dev,
- "Trying to unmap invalid handle! pending_idx: %x\n",
+ "Trying to unmap invalid handle! pending_idx: 0x%x\n",
pending_idx);
BUG();
}
@@ -1243,7 +1243,7 @@ static void xenvif_tx_build_gops(struct xenvif_queue *queue,
/* No crossing a page as the payload mustn't fragment. */
if (unlikely((txreq.offset + txreq.size) > PAGE_SIZE)) {
netdev_err(queue->vif->dev,
- "txreq.offset: %x, size: %u, end: %lu\n",
+ "txreq.offset: %u, size: %u, end: %lu\n",
txreq.offset, txreq.size,
(unsigned long)(txreq.offset&~PAGE_MASK) + txreq.size);
xenvif_fatal_tx_err(queue->vif);
@@ -1593,12 +1593,12 @@ static inline void xenvif_tx_dealloc_action(struct xenvif_queue *queue)
queue->pages_to_unmap,
gop - queue->tx_unmap_ops);
if (ret) {
- netdev_err(queue->vif->dev, "Unmap fail: nr_ops %tx ret %d\n",
+ netdev_err(queue->vif->dev, "Unmap fail: nr_ops %tu ret %d\n",
gop - queue->tx_unmap_ops, ret);
for (i = 0; i < gop - queue->tx_unmap_ops; ++i) {
if (gop[i].status != GNTST_okay)
netdev_err(queue->vif->dev,
- " host_addr: %llx handle: %x status: %d\n",
+ " host_addr: 0x%llx handle: 0x%x status: %d\n",
gop[i].host_addr,
gop[i].handle,
gop[i].status);
@@ -1731,7 +1731,7 @@ void xenvif_idx_unmap(struct xenvif_queue *queue, u16 pending_idx)
&queue->mmap_pages[pending_idx], 1);
if (ret) {
netdev_err(queue->vif->dev,
- "Unmap fail: ret: %d pending_idx: %d host_addr: %llx handle: %x status: %d\n",
+ "Unmap fail: ret: %d pending_idx: %d host_addr: %llx handle: 0x%x status: %d\n",
ret,
pending_idx,
tx_unmap_op.host_addr,
--
2.1.4

2015-06-16 20:08:08

by Sergei Shtylyov

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

Hello.

On 06/16/2015 10:10 PM, Julien Grall wrote:

> Append 0x to all %x in order to avoid while reading when there is other
> decimal value in the log.

> Also replace some of the hexadecimal print to decimal to uniformize the
> format with netfront.

> Signed-off-by: Julien Grall <[email protected]>
> Cc: Wei Liu <[email protected]>
> Cc: Ian Campbell <[email protected]>
> Cc: [email protected]

> ---
> Changes in v4:
> - Patch added
> ---
> drivers/net/xen-netback/netback.c | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)

> diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
> index ba3ae30..11bd9d8 100644
> --- a/drivers/net/xen-netback/netback.c
> +++ b/drivers/net/xen-netback/netback.c
[...]
> @@ -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.

> pending_idx);
> BUG();
> }
> @@ -887,7 +887,7 @@ static inline void xenvif_grant_handle_reset(struct xenvif_queue *queue,
> if (unlikely(queue->grant_tx_handle[pending_idx] ==
> NETBACK_INVALID_HANDLE)) {
> netdev_err(queue->vif->dev,
> - "Trying to unmap invalid handle! pending_idx: %x\n",
> + "Trying to unmap invalid handle! pending_idx: 0x%x\n",

Same here.

[...]
> @@ -1731,7 +1731,7 @@ void xenvif_idx_unmap(struct xenvif_queue *queue, u16 pending_idx)
> &queue->mmap_pages[pending_idx], 1);
> if (ret) {
> netdev_err(queue->vif->dev,
> - "Unmap fail: ret: %d pending_idx: %d host_addr: %llx handle: %x status: %d\n",
> + "Unmap fail: ret: %d pending_idx: %d host_addr: %llx handle: 0x%x status: %d\n",

And here.

[...]

WBR, Sergei

2015-06-16 22:09:22

by Joe Perches

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

On Tue, 2015-06-16 at 23:07 +0300, Sergei Shtylyov wrote:
> On 06/16/2015 10:10 PM, Julien Grall 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.

$ git grep -E "%#[\*\d\.]*x" | wc -l
1419
$ git grep "0x%" | wc -l
29844

2015-06-16 22:29:29

by Sergei Shtylyov

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

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.)

WBR, Sergei

2015-06-16 23:55:34

by Joe Perches

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

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...

2015-06-17 08:54:40

by Ian Campbell

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

On Tue, 2015-06-16 at 16:55 -0700, Joe Perches wrote:
> 0x%x is easier and simpler to visualize than %#x.

They also don't produce the same output if the value is 0 (0x%x=>0x0, %
#x=>0), which can matter if you are trying to line up a column or
whatever.

Ian.

2015-06-17 09:13:22

by Jan Beulich

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

>>> On 16.06.15 at 21:10, <[email protected]> wrote:
> Append 0x to all %x in order to avoid while reading when there is other
> decimal value in the log.

To save on the space taken by the format strings you should prefer
%#x over 0x%x (like we do in the hypervisor).

Jan

2015-06-17 09:25:49

by Ian Campbell

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

On Tue, 2015-06-16 at 20:10 +0100, Julien Grall wrote:
> Append 0x to all %x in order to avoid while reading when there is other
> decimal value in the log.
>
> Also replace some of the hexadecimal print to decimal to uniformize the
> format with netfront.
>
> Signed-off-by: Julien Grall <[email protected]>
> Cc: Wei Liu <[email protected]>
> Cc: Ian Campbell <[email protected]>
> Cc: [email protected]

You meant s/Append/Prepend/, nonetheless:

Acked-by: Ian Campbell <[email protected]>

2015-06-17 09:31:16

by Julien Grall

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

Hi Ian,

On 17/06/2015 10:25, Ian Campbell wrote:
> On Tue, 2015-06-16 at 20:10 +0100, Julien Grall wrote:
>> Append 0x to all %x in order to avoid while reading when there is other
>> decimal value in the log.
>>
>> Also replace some of the hexadecimal print to decimal to uniformize the
>> format with netfront.
>>
>> Signed-off-by: Julien Grall <[email protected]>
>> Cc: Wei Liu <[email protected]>
>> Cc: Ian Campbell <[email protected]>
>> Cc: [email protected]
>
> You meant s/Append/Prepend/, nonetheless:

I noticed a missing word after "avoid" in the commit message too. I will
update to:

"Prepend 0x to all %x in order to avoid confusion while reading when
there is other decimal value in the log.

[...]".

>
> Acked-by: Ian Campbell <[email protected]>

I see different opinion on whether using 0x% or %#. As I plan to resend
a version with the commit message update, shall I use %#?

Regards,

--
Julien Grall

2015-06-17 09:38:01

by Ian Campbell

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

On Wed, 2015-06-17 at 10:30 +0100, Julien Grall wrote:
> I see different opinion on whether using 0x% or %#. As I plan to resend
> a version with the commit message update, shall I use %#?

I think it's mostly pointless bike-shedding over a saving measured in
single digit bytes, use whichever you like.

Ian.

2015-06-21 16:29:58

by David Miller

[permalink] [raw]
Subject: Re: [PATCH v4 1/3] net/xen-netfront: Correct printf format in xennet_get_responses

From: Julien Grall <[email protected]>
Date: Tue, 16 Jun 2015 20:10:46 +0100

> rx->status is an int16_t, print it using %d rather than %u in order to
> have a meaningful value when the field is negative.
>
> Also use %u rather than %x for rx->offset.
>
> Signed-off-by: Julien Grall <[email protected]>
> Reviewed-by: David Vrabel <[email protected]>

Applied.

2015-06-21 16:30:10

by David Miller

[permalink] [raw]
Subject: Re: [PATCH v4 2/3] net/xen-netback: Remove unused code in xenvif_rx_action

From: Julien Grall <[email protected]>
Date: Tue, 16 Jun 2015 20:10:47 +0100

> The variables old_req_cons and ring_slots_used are assigned but never
> used since commit 1650d5455bd2dc6b5ee134bd6fc1a3236c266b5b "xen-netback:
> always fully coalesce guest Rx packets".
>
> Signed-off-by: Julien Grall <[email protected]>
> Acked-by: Wei Liu <[email protected]>

Applied.

2015-06-21 16:30:17

by David Miller

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

From: Julien Grall <[email protected]>
Date: Tue, 16 Jun 2015 20:10:48 +0100

> Append 0x to all %x in order to avoid while reading when there is other
> decimal value in the log.
>
> Also replace some of the hexadecimal print to decimal to uniformize the
> format with netfront.
>
> Signed-off-by: Julien Grall <[email protected]>

Applied.