[1/2] lib/librte_ethdev: add in default value of rte_eth_dev_info

Message ID 1558946129-5816-2-git-send-email-skori@marvell.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series Enabling default mbuf segments support |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/intel-Performance-Testing fail Performance Testing issues
ci/mellanox-Performance-Testing success Performance Testing PASS

Commit Message

Sunil Kumar Kori May 27, 2019, 8:35 a.m. UTC
  rte_eth_dev_info structure exposes, nb_seg_max & nb_mtu_seg_max
to provide maximum number of supported segments for a given platform.

Defining UINT16_MAX as default value of above mentioned variables to
expose support of infinite/maximum segments.

Based on above values, application can decide best size for buffers
while creating mbuf pool.

Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
---
 lib/librte_ethdev/rte_ethdev.c | 2 ++
 lib/librte_ethdev/rte_ethdev.h | 2 ++
 2 files changed, 4 insertions(+)
  

Comments

Andrew Rybchenko June 9, 2019, 2:33 p.m. UTC | #1
On 5/27/19 11:35 AM, Sunil Kumar Kori wrote:
> rte_eth_dev_info structure exposes, nb_seg_max & nb_mtu_seg_max
> to provide maximum number of supported segments for a given platform.
>
> Defining UINT16_MAX as default value of above mentioned variables to
> expose support of infinite/maximum segments.
>
> Based on above values, application can decide best size for buffers
> while creating mbuf pool.
>
> Signed-off-by: Sunil Kumar Kori <skori@marvell.com>

Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
  
Ferruh Yigit June 10, 2019, 5:35 p.m. UTC | #2
On 6/9/2019 3:33 PM, Andrew Rybchenko wrote:
> On 5/27/19 11:35 AM, Sunil Kumar Kori wrote:
>> rte_eth_dev_info structure exposes, nb_seg_max & nb_mtu_seg_max
>> to provide maximum number of supported segments for a given platform.
>>
>> Defining UINT16_MAX as default value of above mentioned variables to
>> expose support of infinite/maximum segments.
>>
>> Based on above values, application can decide best size for buffers
>> while creating mbuf pool.
>>
>> Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
> 
> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
> 

Applied to dpdk-next-net/master, thanks.
  
Yufen.Mo June 14, 2019, 5:31 a.m. UTC | #3
Hi, Sunil Kumar Kori

This series' patches have been merged on dpdk/master. They cause testpmd core dumped on intel nics.

./usertools/dpdk-devbind.py -b igb_uio 0000:xx:00.0 0000:xx:00.1
./x86_64-native-linuxapp-gcc/app/testpmd -v -c 0x3f -n 4  -- -i

Running environment as the following:

* OS:
fedora 20/22/27/30
3.16.4/4.4.14/5.1.0

* Compiler:
gcc version 5.3.1
gcc version 7.3.1
gcc version 4.8.3

* Hardware platform:
Broadwell-EP Xeon E5-2600
Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz
Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
Intel(R) Xeon(R) Platinum 8160 CPU @ 2.10GHz

* NIC hardware:
fortville_spirit
Ethernet Controller XL710 for 40GbE QSFP+ 1583
version: 1.5.16
firmware-version: 6.01 0x800034a4 1.1747.0

fortville(25G 2 ports nic)
Ethernet Controller XXV710 for 25GbE SFP28 158b
driver: i40e
version: 2.1.14-k
firmware-version: 6.01 0x80003554 1.1747.0

fortville(10G 2 ports nic)
Ethernet Controller X710 for 10GbE SFP+ 1572
driver: i40e
version: 2.1.14-k
firmware-version: 6.01 0x800035b0 1.1747.0

niantic
Device_str: 82599ES 10-Gigabit SFI/SFP+ Network Connection
firmware: 0x61bf0001
ixgbe: 4.3.13
ixgbevf: 2.12.1-k


> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Sunil Kumar Kori
> Sent: Monday, May 27, 2019 4:35 PM
> To: thomas@monjalon.net; Yigit, Ferruh <ferruh.yigit@intel.com>; arybchenko@solarflare.com; Lu, Wenzhuo <wenzhuo.lu@intel.com>;
> Wu, Jingjing <jingjing.wu@intel.com>; Iremonger, Bernard <bernard.iremonger@intel.com>
> Cc: dev@dpdk.org; Sunil Kumar Kori <skori@marvell.com>
> Subject: [dpdk-dev] [PATCH 1/2] lib/librte_ethdev: add in default value of rte_eth_dev_info
> 
> rte_eth_dev_info structure exposes, nb_seg_max & nb_mtu_seg_max
> to provide maximum number of supported segments for a given platform.
> 
> Defining UINT16_MAX as default value of above mentioned variables to
> expose support of infinite/maximum segments.
> 
> Based on above values, application can decide best size for buffers
> while creating mbuf pool.
> 
> Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
> ---
>  lib/librte_ethdev/rte_ethdev.c | 2 ++
>  lib/librte_ethdev/rte_ethdev.h | 2 ++
>  2 files changed, 4 insertions(+)
> 
> diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
> index d7cfa3d..6933757 100644
> --- a/lib/librte_ethdev/rte_ethdev.c
> +++ b/lib/librte_ethdev/rte_ethdev.c
> @@ -2543,6 +2543,8 @@ struct rte_eth_dev *
>  		.nb_max = UINT16_MAX,
>  		.nb_min = 0,
>  		.nb_align = 1,
> +		.nb_seg_max = UINT16_MAX,
> +		.nb_mtu_seg_max = UINT16_MAX,
>  	};
> 
>  	RTE_ETH_VALID_PORTID_OR_RET(port_id);
> diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
> index 1f35e1d..6bd30b1 100644
> --- a/lib/librte_ethdev/rte_ethdev.h
> +++ b/lib/librte_ethdev/rte_ethdev.h
> @@ -2333,6 +2333,8 @@ int rte_eth_dev_set_rx_queue_stats_mapping(uint16_t port_id,
>   *      .nb_max = UINT16_MAX,
>   *      .nb_min = 0,
>   *      .nb_align = 1,
> + *	.nb_seg_max = UINT16_MAX,
> + *	.nb_mtu_seg_max = UINT16_MAX,
>   *  };
>   *
>   * device = dev->device
> --
> 1.8.3.1
  
Ferruh Yigit June 14, 2019, 4:51 p.m. UTC | #4
On 6/14/2019 6:31 AM, Mo, YufengX wrote:
> Hi, Sunil Kumar Kori
> 
> This series' patches have been merged on dpdk/master. They cause testpmd core dumped on intel nics.

Right, since they can provide values as "nb_seg_max = 0, nb_mtu_seg_max = 0",
I am sending a patch now.

> 
> ./usertools/dpdk-devbind.py -b igb_uio 0000:xx:00.0 0000:xx:00.1
> ./x86_64-native-linuxapp-gcc/app/testpmd -v -c 0x3f -n 4  -- -i
> 
> Running environment as the following:
> 
> * OS:
> fedora 20/22/27/30
> 3.16.4/4.4.14/5.1.0
> 
> * Compiler:
> gcc version 5.3.1
> gcc version 7.3.1
> gcc version 4.8.3
> 
> * Hardware platform:
> Broadwell-EP Xeon E5-2600
> Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz
> Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
> Intel(R) Xeon(R) Platinum 8160 CPU @ 2.10GHz
> 
> * NIC hardware:
> fortville_spirit
> Ethernet Controller XL710 for 40GbE QSFP+ 1583
> version: 1.5.16
> firmware-version: 6.01 0x800034a4 1.1747.0
> 
> fortville(25G 2 ports nic)
> Ethernet Controller XXV710 for 25GbE SFP28 158b
> driver: i40e
> version: 2.1.14-k
> firmware-version: 6.01 0x80003554 1.1747.0
> 
> fortville(10G 2 ports nic)
> Ethernet Controller X710 for 10GbE SFP+ 1572
> driver: i40e
> version: 2.1.14-k
> firmware-version: 6.01 0x800035b0 1.1747.0
> 
> niantic
> Device_str: 82599ES 10-Gigabit SFI/SFP+ Network Connection
> firmware: 0x61bf0001
> ixgbe: 4.3.13
> ixgbevf: 2.12.1-k
> 
> 
>> -----Original Message-----
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Sunil Kumar Kori
>> Sent: Monday, May 27, 2019 4:35 PM
>> To: thomas@monjalon.net; Yigit, Ferruh <ferruh.yigit@intel.com>; arybchenko@solarflare.com; Lu, Wenzhuo <wenzhuo.lu@intel.com>;
>> Wu, Jingjing <jingjing.wu@intel.com>; Iremonger, Bernard <bernard.iremonger@intel.com>
>> Cc: dev@dpdk.org; Sunil Kumar Kori <skori@marvell.com>
>> Subject: [dpdk-dev] [PATCH 1/2] lib/librte_ethdev: add in default value of rte_eth_dev_info
>>
>> rte_eth_dev_info structure exposes, nb_seg_max & nb_mtu_seg_max
>> to provide maximum number of supported segments for a given platform.
>>
>> Defining UINT16_MAX as default value of above mentioned variables to
>> expose support of infinite/maximum segments.
>>
>> Based on above values, application can decide best size for buffers
>> while creating mbuf pool.
>>
>> Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
>> ---
>>  lib/librte_ethdev/rte_ethdev.c | 2 ++
>>  lib/librte_ethdev/rte_ethdev.h | 2 ++
>>  2 files changed, 4 insertions(+)
>>
>> diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
>> index d7cfa3d..6933757 100644
>> --- a/lib/librte_ethdev/rte_ethdev.c
>> +++ b/lib/librte_ethdev/rte_ethdev.c
>> @@ -2543,6 +2543,8 @@ struct rte_eth_dev *
>>  		.nb_max = UINT16_MAX,
>>  		.nb_min = 0,
>>  		.nb_align = 1,
>> +		.nb_seg_max = UINT16_MAX,
>> +		.nb_mtu_seg_max = UINT16_MAX,
>>  	};
>>
>>  	RTE_ETH_VALID_PORTID_OR_RET(port_id);
>> diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
>> index 1f35e1d..6bd30b1 100644
>> --- a/lib/librte_ethdev/rte_ethdev.h
>> +++ b/lib/librte_ethdev/rte_ethdev.h
>> @@ -2333,6 +2333,8 @@ int rte_eth_dev_set_rx_queue_stats_mapping(uint16_t port_id,
>>   *      .nb_max = UINT16_MAX,
>>   *      .nb_min = 0,
>>   *      .nb_align = 1,
>> + *	.nb_seg_max = UINT16_MAX,
>> + *	.nb_mtu_seg_max = UINT16_MAX,
>>   *  };
>>   *
>>   * device = dev->device
>> --
>> 1.8.3.1
>
  
Ferruh Yigit June 14, 2019, 5:21 p.m. UTC | #5
On 6/14/2019 5:51 PM, Ferruh Yigit wrote:
> On 6/14/2019 6:31 AM, Mo, YufengX wrote:
>> Hi, Sunil Kumar Kori
>>
>> This series' patches have been merged on dpdk/master. They cause testpmd core dumped on intel nics.
> 
> Right, since they can provide values as "nb_seg_max = 0, nb_mtu_seg_max = 0",
> I am sending a patch now.

@Yufeng, Can you please try with patch https://patches.dpdk.org/patch/54811/?

@Thomas, Can it be possible to merge fix to master? Or I can merge if you want?
  
Yufen.Mo June 17, 2019, 1:38 a.m. UTC | #6
Hi, Ferruh  Yigit

Sorry, reply late, I have no vpn/laptop to connect to intel servers. 
Daily regression is running good today since your patch has been merged yesterday.
I have applied your patch manually, it is ok.


> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Saturday, June 15, 2019 1:22 AM
> To: Mo, YufengX <yufengx.mo@intel.com>; Sunil Kumar Kori <skori@marvell.com>; thomas@monjalon.net; arybchenko@solarflare.com;
> Lu, Wenzhuo <wenzhuo.lu@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>; Iremonger, Bernard <bernard.iremonger@intel.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 1/2] lib/librte_ethdev: add in default value of rte_eth_dev_info
> 
> On 6/14/2019 5:51 PM, Ferruh Yigit wrote:
> > On 6/14/2019 6:31 AM, Mo, YufengX wrote:
> >> Hi, Sunil Kumar Kori
> >>
> >> This series' patches have been merged on dpdk/master. They cause testpmd core dumped on intel nics.
> >
> > Right, since they can provide values as "nb_seg_max = 0, nb_mtu_seg_max = 0",
> > I am sending a patch now.
> 
> @Yufeng, Can you please try with patch https://patches.dpdk.org/patch/54811/?
> 
> @Thomas, Can it be possible to merge fix to master? Or I can merge if you want?
  

Patch

diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index d7cfa3d..6933757 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -2543,6 +2543,8 @@  struct rte_eth_dev *
 		.nb_max = UINT16_MAX,
 		.nb_min = 0,
 		.nb_align = 1,
+		.nb_seg_max = UINT16_MAX,
+		.nb_mtu_seg_max = UINT16_MAX,
 	};
 
 	RTE_ETH_VALID_PORTID_OR_RET(port_id);
diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
index 1f35e1d..6bd30b1 100644
--- a/lib/librte_ethdev/rte_ethdev.h
+++ b/lib/librte_ethdev/rte_ethdev.h
@@ -2333,6 +2333,8 @@  int rte_eth_dev_set_rx_queue_stats_mapping(uint16_t port_id,
  *      .nb_max = UINT16_MAX,
  *      .nb_min = 0,
  *      .nb_align = 1,
+ *	.nb_seg_max = UINT16_MAX,
+ *	.nb_mtu_seg_max = UINT16_MAX,
  *  };
  *
  * device = dev->device