[dpdk-dev] [PATCH v2 00/10] net/mlx5: optimize flow resource allocation
Ferruh Yigit
ferruh.yigit at intel.com
Fri Apr 17 16:58:39 CEST 2020
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://patches.dpdk.org/patch/68143/
>
> 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