From: David Marchand > On Tue, Jul 28, 2020 at 8:11 AM Xueming Li <xuemi...@mellanox.com> > wrote: > > > > With latest rte api, vdpa example failed on vq setup, the api to get > > event queue of specified core failed. > > > > The api to get event queue needs core id as input, but after commit > > 67ae5936c4fc36 ("eal: fix lcore accessors for non-EAL threads"), code > > of "vhost-event" thread to get current core returns -1, an invalid > > core id. > > > > As vhost thread created on same core of eal master core, this patch > > uses master core ID as a workaround. > > rte_lcore_to_cpu_id(-1) is supposed to return the current lcore id. > As explained in the commitlog of 67ae5936c4fc36, for a non-EAL thread > (which has no associated lcore by default) calling this function means > lcore_config[-1].core_id.
Deosn't lcore mean core? So, if the private thread run on a core that opened by EAL, Shouldn't the API return the lcore of the private thread core? > > Did I miss something? > If not, this is not a workaround but a fix. I'm not sure yet. > > > > Signed-off-by: Xueming Li <xuemi...@mellanox.com> > > Acked-by: Matan Azrad <ma...@mellanox.com> > > --- > > drivers/vdpa/mlx5/mlx5_vdpa_event.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_event.c > > b/drivers/vdpa/mlx5/mlx5_vdpa_event.c > > index 13ad43611e..ff6db8e345 100644 > > --- a/drivers/vdpa/mlx5/mlx5_vdpa_event.c > > +++ b/drivers/vdpa/mlx5/mlx5_vdpa_event.c > > @@ -55,7 +55,7 @@ mlx5_vdpa_event_qp_global_prepare(struct > > mlx5_vdpa_priv *priv) > > > > if (priv->eventc) > > return 0; > > - lcore = (uint32_t)rte_lcore_to_cpu_id(-1); > > + lcore = (uint32_t)rte_get_master_lcore(); > > if (mlx5_glue->devx_query_eqn(priv->ctx, lcore, &priv->eqn)) { > > rte_errno = errno; > > DRV_LOG(ERR, "Failed to query EQ number %d.", > > rte_errno); > > -- > > 2.17.1 > > > > > -- > David Marchand