Re: [PATCH v4 27/27] net/ice: avoid rte malloc in flow pattern match

Burakov, Anatoly
2026-02-19T13:07:32Z

On 2/16/2026 6:37 PM, Bruce Richardson wrote:
> On Fri, Feb 13, 2026 at 10:26:38AM +0000, Anatoly Burakov wrote:
>> Currently, when allocating buffers for pattern match items and flow item
>> storage, we are using rte_zmalloc followed by immediate rte_free. This is
>> not needed as these buffers are only used temporarily within the function
>> scope, so replace it with regular calloc/free.
>>
>> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
>> ---
>> drivers/net/intel/ice/ice_acl_filter.c | 3 ++-
>> drivers/net/intel/ice/ice_fdir_filter.c | 5 +++--
>> drivers/net/intel/ice/ice_generic_flow.c | 15 +++++++--------
>> drivers/net/intel/ice/ice_hash.c | 3 ++-
>> drivers/net/intel/ice/ice_switch_filter.c | 5 +++--
>> 5 files changed, 17 insertions(+), 14 deletions(-)
>>
>> diff --git a/drivers/net/intel/ice/ice_acl_filter.c b/drivers/net/intel/ice/ice_acl_filter.c
>> index 38e30a4f62..6754a40044 100644
>> --- a/drivers/net/intel/ice/ice_acl_filter.c
>> +++ b/drivers/net/intel/ice/ice_acl_filter.c
>> @@ -9,6 +9,7 @@
>> #include <string.h>
>> #include <unistd.h>
>> #include <stdarg.h>
>> +#include <stdlib.h>
>> #include <rte_debug.h>
>> #include <rte_ether.h>
>> #include <ethdev_driver.h>
>> @@ -1009,7 +1010,7 @@ ice_acl_parse(struct ice_adapter *ad,
>> *meta = filter;
>>
>> error:
>> - rte_free(item);
>> + free(item);
>> return ret;
>> }
>
> Should this code be reworked so that the error is propagated back to caller
> and the item freed there so as allocation and freeing occur together in the
> one function - or even in the same file?
>

It should, and in fact further rework is also about fixing quirks like
these. With this patch though, I tried to minimize the changes and not
touch logic, because untangling these allocations is not trivial.

--
Thanks,
Anatoly