On Sat, Aug 20, 2022 at 6:30 AM Timothy McDaniel
<timothy.mcdan...@intel.com> wrote:
>
> For best performance, applications running on certain cores should use
> the DLB device locally available on the same tile along with other
> resources. To allocate optimal resources, probing is done for each
> producer port (PP) for a given CPU and the best performing ports are
> allocated to producers. The cpu used for probing is either the first
> core of producer coremask (if present) or the second core of EAL
> coremask. This will be extended later to probe for all CPUs in the
> producer coremask or EAL coremask.
>
> Producer coremask can be passed along with the BDF of the DLB devices.
> "-a xx:y.z,producer_coremask=<core_mask>"
>
> Applications also need to pass RTE_EVENT_PORT_CFG_HINT_PRODUCER during
> rte_event_port_setup() for producer ports for optimal port allocation.
>
> When events are dropped by workers or consumers that use LDB ports,
> completions are sent which are just ENQs and may impact the latency.
> To address this,  probing is done for LDB ports as well. Probing is
> done on ports per 'cos'. When default cos is used, ports will be
> allocated from best ports from the best 'cos', else from best ports of
> the specific cos.
>
> Signed-off-by: Timothy McDaniel <timothy.mcdan...@intel.com>
> ---
>  drivers/event/dlb2/dlb2.c                  |  40 +++-
>  drivers/event/dlb2/dlb2_priv.h             |   5 +
>  drivers/event/dlb2/dlb2_user.h             |   1 +
>  drivers/event/dlb2/pf/base/dlb2_hw_types.h |   5 +
>  drivers/event/dlb2/pf/base/dlb2_resource.c | 248 ++++++++++++++++++++-
>  drivers/event/dlb2/pf/base/dlb2_resource.h |  13 ++
>  drivers/event/dlb2/pf/dlb2_main.c          |   7 +-
>  drivers/event/dlb2/pf/dlb2_main.h          |  23 +-
>  drivers/event/dlb2/pf/dlb2_pf.c            |  23 +-
>  9 files changed, 341 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/event/dlb2/dlb2.c b/drivers/event/dlb2/dlb2.c
> index 5a443acff8..a9a174e136 100644
> --- a/drivers/event/dlb2/dlb2.c
> +++ b/drivers/event/dlb2/dlb2.c
> @@ -293,6 +293,23 @@ dlb2_string_to_int(int *result, const char *str)
>         return 0;
>  }
>
> +/* Extern functions */
> +extern int rte_eal_parse_coremask(const char *coremask, int *cores);

Include eal header file.

I will wait for the dependent patch to merge to the main tree to tale
the next version.

> +#ifdef DLB2_DEFAULT_LDB_PORT_ALLOCATION

Introduce a new devargs to make it runtime.

Also update the PMD doc for the existing and new devargs.

Reply via email to