[dpdk-dev] [PATCH v2 00/10] net/mlx5: optimize flow resource allocation
Suanming Mou
suanmingm at mellanox.com
Sat Apr 18 03:46:02 CEST 2020
Hi Ferruh,
Sorry that we missed the 32-bit build verification.
I have created the fix path.
https://patches.dpdk.org/patch/68831/
Thanks
SuanmingMou
> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit at intel.com>
> Sent: Friday, April 17, 2020 10:59 PM
> To: Suanming Mou <suanmingm at mellanox.com>; Raslan Darawsheh
> <rasland at mellanox.com>
> Cc: Slava Ovsiienko <viacheslavo at mellanox.com>; Matan Azrad
> <matan at mellanox.com>; dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v2 00/10] net/mlx5: optimize flow resource
> allocation
>
> On 4/16/2020 3:41 AM, Suanming Mou wrote:
> > Currently, flow may allocate several action resources during creation.
> > Both allocate the individual resources and save the object handles
> > have big memory overhead for the flow.
> >
> > Indexed memory pool is introduced to optimize the memory overhead. The
> > resources can be allocated from the resource's own individual memory
> > pool and only the 32-bits index is saved to the flow.
> >
> > In this case, it saves MALLOC_ELEM_OVERHEAD and 4 bytes for every flow
> > resources.
> >
> > This patch series depends on the path which has been acked as below:
> > https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatc
> >
> hes.dpdk.org%2Fpatch%2F68143%2F&data=02%7C01%7Csuanmingm%40
> mellano
> >
> x.com%7Caf4087bccbb442edf12708d7e2dfd396%7Ca652971c7d2e4d9ba6a4d1
> 49256
> >
> f461b%7C0%7C0%7C637227323276924116&sdata=i09jTFpq%2FUGRvhBi%
> 2BpJei
> > nBZeBm2LyE528UQ%2F7L1rWY%3D&reserved=0
> >
> > v2:
> > - rebase to the lastet version.
> > - add the missing 10th patch.
> >
> > Suanming Mou (10):
> > net/mlx5: add indexed memory pool
> > net/mlx5: add trunk dynamic grow for indexed pool
> > net/mlx5: add trunk release for indexed pool
> > net/mlx5: convert encap/decap resource to indexed
> > net/mlx5: convert push VLAN resource to indexed
> > net/mlx5: convert tag resource to indexed
> > net/mlx5: convert port id action to indexed
> > net/mlx5: convert jump resource to indexed
> > net/mlx5: convert hrxq to indexed
> > net/mlx5: convert flow dev handle to indexed
>
> Hi Suanming, Raslan,
>
> There is a 32-bit build error [1], can you please check it?
>
> [1]
> .../drivers/net/mlx5/mlx5_utils.c: In function ‘mlx5_ipool_dump’:
> .../drivers/net/mlx5/mlx5_utils.c:475:26: error: format ‘%ld’ expects argument
> of type ‘long int’, but argument 3 has type ‘int64_t’ {aka ‘long long int’} [-
> Werror=format=]
> 475 | printf("Pool %s entry %ld, trunk alloc %ld, empty: %ld, "
> | ~~^
> | |
> | long int
> | %lld
> 476 | "available %ld free %ld\n",
> 477 | pool->cfg.type, pool->n_entry, pool->trunk_new,
> | ~~~~~~~~~~~~~
> | |
> | int64_t {aka long long int}
> .../drivers/net/mlx5/mlx5_utils.c:475:43: error: format ‘%ld’ expects argument
> of type ‘long int’, but argument 4 has type ‘int64_t’ {aka ‘long long int’} [-
> Werror=format=]
> 475 | printf("Pool %s entry %ld, trunk alloc %ld, empty: %ld, "
> | ~~^
> | |
> | long int
> | %lld
> 476 | "available %ld free %ld\n",
> 477 | pool->cfg.type, pool->n_entry, pool->trunk_new,
> | ~~~~~~~~~~~~~~~
> | |
> | int64_t {aka long long int}
> .../drivers/net/mlx5/mlx5_utils.c:475:55: error: format ‘%ld’ expects argument
> of type ‘long int’, but argument 5 has type ‘int64_t’ {aka ‘long long int’} [-
> Werror=format=]
> 475 | printf("Pool %s entry %ld, trunk alloc %ld, empty: %ld, "
> | ~~^
> | |
> | long int
> | %lld
> ......
> 478 | pool->trunk_empty, pool->trunk_avail, pool->trunk_free);
> | ~~~~~~~~~~~~~~~~~
> | |
> | int64_t {aka long long int}
> .../drivers/net/mlx5/mlx5_utils.c:475:9: error: format ‘%ld’ expects argument of
> type ‘long int’, but argument 6 has type ‘int64_t’ {aka ‘long long int’} [-
> Werror=format=]
> 475 | printf("Pool %s entry %ld, trunk alloc %ld, empty: %ld, "
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ......
> 478 | pool->trunk_empty, pool->trunk_avail, pool->trunk_free);
> | ~~~~~~~~~~~~~~~~~
> | |
> | int64_t {aka long long int}
> .../drivers/net/mlx5/mlx5_utils.c:476:22: note: format string is defined here
> 476 | "available %ld free %ld\n",
> | ~~^
> | |
> | long int
> | %lld
> .../drivers/net/mlx5/mlx5_utils.c:475:9: error: format ‘%ld’ expects argument of
> type ‘long int’, but argument 7 has type ‘int64_t’ {aka ‘long long int’} [-
> Werror=format=]
> 475 | printf("Pool %s entry %ld, trunk alloc %ld, empty: %ld, "
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ......
> 478 | pool->trunk_empty, pool->trunk_avail, pool->trunk_free);
> | ~~~~~~~~~~~~~~~~
> | |
> | int64_t {aka long long
> int}
> .../drivers/net/mlx5/mlx5_utils.c:476:31: note: format string is defined here
> 476 | "available %ld free %ld\n",
> | ~~^
> | |
> | long int
> | %lld
> cc1: all warnings being treated as errors
More information about the dev
mailing list