Allow the driver to use internal threads to obtain fast configuration. All the threads will be open on the same core of the event completion queue scheduling thread.
Add max_conf_threads parameter to configure the maximum number of internal threads in addition to the caller thread (8 is suggested). These internal threads to pipeline handle VDPA tasks in system and shared with all VDPA devices. Default is 0, don't use internal threads for configuration. Depends-on: series=21868 ("vdpa/mlx5: improve device shutdown time") http://patchwork.dpdk.org/project/dpdk/list/?series=21868 RFC ("Add vDPA multi-threads optiomization") https://patchwork.dpdk.org/project/dpdk/cover/20220408075606.33056-1-l...@nvidia.com/ V2: * Drop eal device removal patch in series. * Add release note in release_22_07.rst. V3: * Fix comments about commit log issue. * Avoid cutting logs. Li Zhang (12): vdpa/mlx5: fix usage of capability for max number of virtqs common/mlx5: extend virtq modifiable fields vdpa/mlx5: pre-create virtq at probe time vdpa/mlx5: optimize datapath-control synchronization vdpa/mlx5: add multi-thread management for configuration vdpa/mlx5: add task ring for MT management vdpa/mlx5: add MT task for VM memory registration vdpa/mlx5: add virtq creation task for MT management vdpa/mlx5: add virtq LM log task vdpa/mlx5: add device close task vdpa/mlx5: add virtq sub-resources creation vdpa/mlx5: prepare virtqueue resource creation Yajun Wu (3): vdpa/mlx5: support pre create virtq resource common/mlx5: add DevX API to move QP to reset state vdpa/mlx5: support event qp reuse doc/guides/rel_notes/release_22_07.rst | 5 + doc/guides/vdpadevs/mlx5.rst | 25 + drivers/common/mlx5/mlx5_devx_cmds.c | 77 ++- drivers/common/mlx5/mlx5_devx_cmds.h | 6 +- drivers/common/mlx5/mlx5_prm.h | 30 +- drivers/vdpa/mlx5/meson.build | 1 + drivers/vdpa/mlx5/mlx5_vdpa.c | 270 ++++++++-- drivers/vdpa/mlx5/mlx5_vdpa.h | 152 +++++- drivers/vdpa/mlx5/mlx5_vdpa_cthread.c | 360 ++++++++++++++ drivers/vdpa/mlx5/mlx5_vdpa_event.c | 160 ++++-- drivers/vdpa/mlx5/mlx5_vdpa_lm.c | 132 +++-- drivers/vdpa/mlx5/mlx5_vdpa_mem.c | 270 ++++++---- drivers/vdpa/mlx5/mlx5_vdpa_steer.c | 22 +- drivers/vdpa/mlx5/mlx5_vdpa_virtq.c | 654 ++++++++++++++++++------- 14 files changed, 1777 insertions(+), 387 deletions(-) create mode 100644 drivers/vdpa/mlx5/mlx5_vdpa_cthread.c -- 2.31.1