[dpdk-dev] [PATCH] eal: add umonitor umwait to x86 cpuflags

McDaniel, Timothy timothy.mcdaniel at intel.com
Mon Sep 14 18:45:56 CEST 2020



> -----Original Message-----
> From: Ananyev, Konstantin <konstantin.ananyev at intel.com>
> Sent: Friday, September 11, 2020 11:37 AM
> To: McDaniel, Timothy <timothy.mcdaniel at intel.com>; Richardson, Bruce
> <bruce.richardson at intel.com>
> Cc: dev at dpdk.org; Carrillo, Erik G <erik.g.carrillo at intel.com>; Eads, Gage
> <gage.eads at intel.com>; Van Haaren, Harry <harry.van.haaren at intel.com>;
> Ma, Liang J <liang.j.ma at intel.com>; Burakov, Anatoly
> <anatoly.burakov at intel.com>
> Subject: RE: [PATCH] eal: add umonitor umwait to x86 cpuflags
> 
> 
> >
> > umonitor/umwait are user-level versions of the monitor/mwait
> > instructions. These allow the core to wait in a low-power state
> > until a specified cache line is accessed, a timeout occurs,
> > or the core is interrupted.
> 
> Isn't it a duplicate to:
> https://patches.dpdk.org/patch/76554/
> ?
Yes, the new rte_cpuflags.[ch] bit definitions for umonitor/umwait appear to be duplicates. I am not opposed to
dropping my patch, so long as this new bit gets defined in some other patch that makes it into 20.11.
> 
> >
> > Signed-off-by: Timothy McDaniel <timothy.mcdaniel at intel.com>
> > ---
> >  lib/librte_eal/x86/include/rte_cpuflags.h | 1 +
> >  lib/librte_eal/x86/rte_cpuflags.c         | 1 +
> >  2 files changed, 2 insertions(+)
> >
> > diff --git a/lib/librte_eal/x86/include/rte_cpuflags.h
> b/lib/librte_eal/x86/include/rte_cpuflags.h
> > index c1d2036..ab2c3b3 100644
> > --- a/lib/librte_eal/x86/include/rte_cpuflags.h
> > +++ b/lib/librte_eal/x86/include/rte_cpuflags.h
> > @@ -130,6 +130,7 @@ enum rte_cpu_flag_t {
> >  	RTE_CPUFLAG_CLDEMOTE,               /**< Cache Line Demote */
> >  	RTE_CPUFLAG_MOVDIRI,                /**< Direct Store Instructions */
> >  	RTE_CPUFLAG_MOVDIR64B,              /**< Direct Store Instructions 64B
> */
> > +	RTE_CPUFLAG_UMWAIT,                 /**< UMONITOR/UMWAIT */
> >  	RTE_CPUFLAG_AVX512VP2INTERSECT,     /**< AVX512 Two Register
> Intersection */
> >
> >  	/* The last item */
> > diff --git a/lib/librte_eal/x86/rte_cpuflags.c b/lib/librte_eal/x86/rte_cpuflags.c
> > index 30439e7..6bed3eb 100644
> > --- a/lib/librte_eal/x86/rte_cpuflags.c
> > +++ b/lib/librte_eal/x86/rte_cpuflags.c
> > @@ -137,6 +137,7 @@ const struct feature_entry rte_cpu_feature_table[] = {
> >  	FEAT_DEF(CLDEMOTE, 0x00000007, 0, RTE_REG_ECX, 25)
> >  	FEAT_DEF(MOVDIRI, 0x00000007, 0, RTE_REG_ECX, 27)
> >  	FEAT_DEF(MOVDIR64B, 0x00000007, 0, RTE_REG_ECX, 28)
> > +	FEAT_DEF(UMWAIT, 0x00000007, 0, RTE_REG_ECX, 5)
> >  	FEAT_DEF(AVX512VP2INTERSECT, 0x00000007, 0, RTE_REG_EDX, 8)
> >  };
> >
> > --
> > 2.6.4



More information about the dev mailing list