[dpdk-dev,v3] app/testpmd: print Rx/Tx offload values

Message ID 20180312175308.190393-1-ferruh.yigit@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Ferruh Yigit March 12, 2018, 5:53 p.m. UTC
  Which per port offloads are enabled is not clear. Printing offloads
values at forwarding start.

CRC strip offload value was printed in more verbose manner, it is
removed since Rx/Tx offload values covers it and printing only CRC one
can cause confusion.

Hexadecimal offloads values are not very user friendly but preferred to
not create to much noise during forwarding start.

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
---
Cc: Shahaf Shuler <shahafs@mellanox.com>
Cc: Yongseok Koh <yskoh@mellanox.com>

v2:
* Add Rxq and Txq stats too
* Split Rx an Tx related logs and place them related group

v3:
* Use consistent syntax in logs
---
 app/test-pmd/config.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)
  

Comments

Van Haaren, Harry March 13, 2018, 9:24 a.m. UTC | #1
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Ferruh Yigit
> Sent: Monday, March 12, 2018 5:53 PM
> To: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>
> Cc: dev@dpdk.org; Yigit, Ferruh <ferruh.yigit@intel.com>; Shahaf Shuler
> <shahafs@mellanox.com>; Yongseok Koh <yskoh@mellanox.com>
> Subject: [dpdk-dev] [PATCH v3] app/testpmd: print Rx/Tx offload values
> 
> Which per port offloads are enabled is not clear. Printing offloads
> values at forwarding start.
> 
> CRC strip offload value was printed in more verbose manner, it is
> removed since Rx/Tx offload values covers it and printing only CRC one
> can cause confusion.
> 
> Hexadecimal offloads values are not very user friendly but preferred to
> not create to much noise during forwarding start.


Hmmm - I'm thinking is there a better method to reduce verbosity, but keep
user friendliness?

Can the dynamic logs be used? By default, just print the hex mask, but with
--log-level="pmd.net.*.offload_flags" we print the list, itemized?

crc strip .......... 1
vlan strip ......... 1
udp checksum ....... 0


I'm not sure what the exact string should be - testpmd specific or DPDK wide at the PMD level?
  
Ferruh Yigit March 13, 2018, 10:21 a.m. UTC | #2
On 3/13/2018 9:24 AM, Van Haaren, Harry wrote:
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Ferruh Yigit
>> Sent: Monday, March 12, 2018 5:53 PM
>> To: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>
>> Cc: dev@dpdk.org; Yigit, Ferruh <ferruh.yigit@intel.com>; Shahaf Shuler
>> <shahafs@mellanox.com>; Yongseok Koh <yskoh@mellanox.com>
>> Subject: [dpdk-dev] [PATCH v3] app/testpmd: print Rx/Tx offload values
>>
>> Which per port offloads are enabled is not clear. Printing offloads
>> values at forwarding start.
>>
>> CRC strip offload value was printed in more verbose manner, it is
>> removed since Rx/Tx offload values covers it and printing only CRC one
>> can cause confusion.
>>
>> Hexadecimal offloads values are not very user friendly but preferred to
>> not create to much noise during forwarding start.
> 
> 
> Hmmm - I'm thinking is there a better method to reduce verbosity, but keep
> user friendliness?
> 
> Can the dynamic logs be used? By default, just print the hex mask, but with
> --log-level="pmd.net.*.offload_flags" we print the list, itemized?
> 
> crc strip .......... 1
> vlan strip ......... 1
> udp checksum ....... 0

As Yongseok mentioned 'show port cap all' prints the offload capabilities in a
more user friendly way [1] [2]. This patch adds a summary config log after
"start" command, I think it is good to keep it brief.

Related to the "pmd.net.*.offload_flags" suggestion, we are currently using log
types to select components, it can be interesting to use feature based log
types, ethdev may register them and PMDs can use it.


[1]
************ Port 0 supported offload features: ************
VLAN stripped:                 off
Double VLANs stripped:         off
RX IPv4 checksum:              off
RX UDP checksum:               off
RX TCP checksum:               off
RX Outer IPv4 checksum:               off
VLAN insert:                   off
Double VLANs insert:           off
TX IPv4 checksum:              off
TX UDP checksum:               off
TX TCP checksum:               off
TX SCTP checksum:              off
TX Outer IPv4 checksum:        off
TX TCP segmentation:           off
TSO for VXLAN tunnel packet:   off
TSO for GRE tunnel packet:     off
TSO for IPIP tunnel packet:    off
TSO for GENEVE tunnel packet:  off

[2]
This command needs a volunteer to add missing offloading types.

> 
> 
> I'm not sure what the exact string should be - testpmd specific or DPDK wide at the PMD level?
>
  
Van Haaren, Harry March 13, 2018, 11:06 a.m. UTC | #3
> -----Original Message-----

> From: Yigit, Ferruh

> Sent: Tuesday, March 13, 2018 10:21 AM

> To: Van Haaren, Harry <harry.van.haaren@intel.com>; Lu, Wenzhuo

> <wenzhuo.lu@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>

> Cc: dev@dpdk.org; Shahaf Shuler <shahafs@mellanox.com>; Yongseok Koh

> <yskoh@mellanox.com>

> Subject: Re: [dpdk-dev] [PATCH v3] app/testpmd: print Rx/Tx offload values

> 

> On 3/13/2018 9:24 AM, Van Haaren, Harry wrote:

> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Ferruh Yigit

> >> Sent: Monday, March 12, 2018 5:53 PM

> >> To: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Wu, Jingjing

> <jingjing.wu@intel.com>

> >> Cc: dev@dpdk.org; Yigit, Ferruh <ferruh.yigit@intel.com>; Shahaf Shuler

> >> <shahafs@mellanox.com>; Yongseok Koh <yskoh@mellanox.com>

> >> Subject: [dpdk-dev] [PATCH v3] app/testpmd: print Rx/Tx offload values

> >>

> >> Which per port offloads are enabled is not clear. Printing offloads

> >> values at forwarding start.

> >>

> >> CRC strip offload value was printed in more verbose manner, it is

> >> removed since Rx/Tx offload values covers it and printing only CRC one

> >> can cause confusion.

> >>

> >> Hexadecimal offloads values are not very user friendly but preferred to

> >> not create to much noise during forwarding start.

> >

> >

> > Hmmm - I'm thinking is there a better method to reduce verbosity, but keep

> > user friendliness?

> >

> > Can the dynamic logs be used? By default, just print the hex mask, but

> with

> > --log-level="pmd.net.*.offload_flags" we print the list, itemized?

> >

> > crc strip .......... 1

> > vlan strip ......... 1

> > udp checksum ....... 0

> 

> As Yongseok mentioned 'show port cap all' prints the offload capabilities in

> a more user friendly way [1] [2]. This patch adds a summary config log after

> "start" command, I think it is good to keep it brief.


Apologies I didn't follow this thread from the start, Ack to keep it brief here.


> Related to the "pmd.net.*.offload_flags" suggestion, we are currently using

> log

> types to select components, it can be interesting to use feature based log

> types, ethdev may register them and PMDs can use it.


Yes - we'd need to define what log-levels exist per feature, so there is some consistency.
I suggest postponing that as future work, existing patch is fine with me as is.
  
Thomas Monjalon April 22, 2018, 11:02 p.m. UTC | #4
12/03/2018 18:53, Ferruh Yigit:
> Which per port offloads are enabled is not clear. Printing offloads
> values at forwarding start.
> 
> CRC strip offload value was printed in more verbose manner, it is
> removed since Rx/Tx offload values covers it and printing only CRC one
> can cause confusion.
> 
> Hexadecimal offloads values are not very user friendly but preferred to
> not create to much noise during forwarding start.
> 
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> Acked-by: Yongseok Koh <yskoh@mellanox.com>

Applied, thanks
  

Patch

diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 4bb255c62..51f725865 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -1682,10 +1682,6 @@  rxtx_config_display(void)
 		struct rte_eth_txconf *tx_conf = &ports[pid].tx_conf;
 
 		printf("  port %d:\n", (unsigned int)pid);
-		printf("  CRC stripping %s\n",
-				(ports[pid].dev_conf.rxmode.offloads &
-				 DEV_RX_OFFLOAD_CRC_STRIP) ?
-				"enabled" : "disabled");
 		printf("  RX queues=%d - RX desc=%d - RX free threshold=%d\n",
 				nb_rxq, nb_rxd, rx_conf->rx_free_thresh);
 		printf("  RX threshold registers: pthresh=%d hthresh=%d "
@@ -1693,6 +1689,9 @@  rxtx_config_display(void)
 				rx_conf->rx_thresh.pthresh,
 				rx_conf->rx_thresh.hthresh,
 				rx_conf->rx_thresh.wthresh);
+		printf("  Rx offloads=0x%"PRIx64" RXQ offloads=0x%"PRIx64"\n",
+				ports[pid].dev_conf.rxmode.offloads,
+				rx_conf->offloads);
 		printf("  TX queues=%d - TX desc=%d - TX free threshold=%d\n",
 				nb_txq, nb_txd, tx_conf->tx_free_thresh);
 		printf("  TX threshold registers: pthresh=%d hthresh=%d "
@@ -1700,8 +1699,10 @@  rxtx_config_display(void)
 				tx_conf->tx_thresh.pthresh,
 				tx_conf->tx_thresh.hthresh,
 				tx_conf->tx_thresh.wthresh);
-		printf("  TX RS bit threshold=%d - TXQ offloads=0x%"PRIx64"\n",
-				tx_conf->tx_rs_thresh, tx_conf->offloads);
+		printf("  TX RS bit threshold=%d\n", tx_conf->tx_rs_thresh);
+		printf("  Tx offloads=0x%"PRIx64" TXQ offloads=0x%"PRIx64"\n",
+				ports[pid].dev_conf.txmode.offloads,
+				tx_conf->offloads);
 	}
 }