This patch set will remove the flow rules cache and move to the non-cached mode for both DV and Verbs mode.
In the device closing stage, all the software resources for flows created will be freed and corresponding hardware resources will be released. Then the total cost of the memory will be reduced and the behavior of mlx5 PMD will comply fully with the ethdev API expectations. After closing a device, all the flow rules stored in application layer will no longer be valid anymore. Application should synchronize the database and do not try to destory any rule on this device. And after a device restarting, all the needed flow rules should be reinserted via the create routine in the rte_flow lib. --- v2 Changes: Fix the compiling error with MLX5 Debug mode in the 4th commit of "net/mlx5: introduce handle structure for DV flows". v3 Changes: Refactor the device flow related structures to support non-cached mode for both Verbs and DV flows. v4 Changes: Fix the code style warning for stdbool type and a typo in the code line comments. --- Bing Zhao (4): net/mlx5: change operations for non-cached flows net/mlx5: reorganize mlx5 flow structures net/mlx5: separate the flow handle resource net/mlx5: check device stat before creating flow drivers/net/mlx5/mlx5.c | 18 ++- drivers/net/mlx5/mlx5.h | 9 +- drivers/net/mlx5/mlx5_flow.c | 197 +++++++++++++++++------ drivers/net/mlx5/mlx5_flow.h | 179 ++++++++++++++------- drivers/net/mlx5/mlx5_flow_dv.c | 311 ++++++++++++++++++++----------------- drivers/net/mlx5/mlx5_flow_verbs.c | 156 +++++++++++-------- drivers/net/mlx5/mlx5_trigger.c | 26 ++-- 7 files changed, 573 insertions(+), 323 deletions(-) -- 1.8.3.1