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.