Hi > -----Original Message----- > From: Suanming Mou <suanmi...@mellanox.com> > Sent: Friday, July 17, 2020 4:51 PM > To: Slava Ovsiienko <viachesl...@mellanox.com>; Matan Azrad > <ma...@mellanox.com> > Cc: Ori Kam <or...@mellanox.com>; Raslan Darawsheh > <rasl...@mellanox.com>; dev@dpdk.org > Subject: [PATCH v3 0/7] net/mlx5: add sys_mem_en devarg > > Currently, for MLX5 PMD, once millions of flows created, the memory > consumption of the flows are also very huge. For the system with limited > memory, it means the system need to reserve most of the memory as huge > page memory to serve the flows in advance. And other normal applications > will have no chance to use this reserved memory any more. While most of > the time, the system will not have lots of flows, the reserved huge page > memory becomes a bit waste of memory at most of the time. > > By the new sys_mem_en devarg, once set it to be true, it allows the PMD > allocate the memory from system by default with the new add mlx5 memory > management functions. Only once the MLX5_MEM_RTE flag is set, the > memory > will be allocate from rte, otherwise, it allocates memory from system. > > So in this case, the system with limited memory no need to reserve most > of the memory for hugepage. Only some needed memory for datapath > objects > will be enough to allocated with explicitly flag. Other memory will be > allocated from system. For system with enough memory, no need to care > about the devarg, the memory will always be from rte hugepage. > > One restriction is that for DPDK application with multiple PCI devices, > if the sys_mem_en devargs are different between the devices, the > sys_mem_en only gets the value from the first device devargs, and print > out a message to warn that. > > --- > > v3: > - Rebase on top of latest code. > > v2: > - Add memory function call statistic. > - Change msl to aotmic. > > --- > > Suanming Mou (7): > common/mlx5: add mlx5 memory management functions > net/mlx5: add allocate memory from system devarg > net/mlx5: convert control path memory to unified malloc > common/mlx5: convert control path memory to unified malloc > common/mlx5: convert data path objects to unified malloc > net/mlx5: convert configuration objects to unified malloc > net/mlx5: convert Rx/Tx queue objects to unified malloc > > doc/guides/nics/mlx5.rst | 7 + > drivers/common/mlx5/Makefile | 1 + > drivers/common/mlx5/linux/mlx5_glue.c | 13 +- > drivers/common/mlx5/linux/mlx5_nl.c | 5 +- > drivers/common/mlx5/meson.build | 1 + > drivers/common/mlx5/mlx5_common.c | 10 +- > drivers/common/mlx5/mlx5_common_mp.c | 7 +- > drivers/common/mlx5/mlx5_common_mr.c | 31 ++- > drivers/common/mlx5/mlx5_devx_cmds.c | 82 ++++--- > drivers/common/mlx5/mlx5_malloc.c | 306 > ++++++++++++++++++++++++ > drivers/common/mlx5/mlx5_malloc.h | 99 ++++++++ > drivers/common/mlx5/rte_common_mlx5_version.map | 6 + > drivers/net/mlx5/linux/mlx5_ethdev_os.c | 8 +- > drivers/net/mlx5/linux/mlx5_os.c | 28 ++- > drivers/net/mlx5/mlx5.c | 108 +++++---- > drivers/net/mlx5/mlx5.h | 1 + > drivers/net/mlx5/mlx5_ethdev.c | 15 +- > drivers/net/mlx5/mlx5_flow.c | 45 ++-- > drivers/net/mlx5/mlx5_flow_dv.c | 46 ++-- > drivers/net/mlx5/mlx5_flow_meter.c | 11 +- > drivers/net/mlx5/mlx5_flow_verbs.c | 8 +- > drivers/net/mlx5/mlx5_mp.c | 3 +- > drivers/net/mlx5/mlx5_rss.c | 13 +- > drivers/net/mlx5/mlx5_rxq.c | 74 +++--- > drivers/net/mlx5/mlx5_txpp.c | 30 +-- > drivers/net/mlx5/mlx5_txq.c | 82 +++---- > drivers/net/mlx5/mlx5_utils.c | 60 +++-- > drivers/net/mlx5/mlx5_utils.h | 2 +- > drivers/net/mlx5/mlx5_vlan.c | 8 +- > 29 files changed, 797 insertions(+), 313 deletions(-) > create mode 100644 drivers/common/mlx5/mlx5_malloc.c > create mode 100644 drivers/common/mlx5/mlx5_malloc.h > > -- > 1.8.3.1
Series applied to next-net-mlx, Kindest regards, Raslan Darawsheh