DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] eal: add umonitor umwait to x86 cpuflags
@ 2020-09-11 16:26 Timothy McDaniel
  2020-09-11 16:37 ` Ananyev, Konstantin
  0 siblings, 1 reply; 4+ messages in thread
From: Timothy McDaniel @ 2020-09-11 16:26 UTC (permalink / raw)
  To: Bruce Richardson, Konstantin Ananyev
  Cc: dev, erik.g.carrillo, gage.eads, harry.van.haaren

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.

Signed-off-by: Timothy McDaniel <timothy.mcdaniel@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


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] [PATCH] eal: add umonitor umwait to x86 cpuflags
  2020-09-11 16:26 [dpdk-dev] [PATCH] eal: add umonitor umwait to x86 cpuflags Timothy McDaniel
@ 2020-09-11 16:37 ` Ananyev, Konstantin
  2020-09-14 16:45   ` McDaniel, Timothy
  2020-10-09 15:21   ` McDaniel, Timothy
  0 siblings, 2 replies; 4+ messages in thread
From: Ananyev, Konstantin @ 2020-09-11 16:37 UTC (permalink / raw)
  To: McDaniel, Timothy, Richardson, Bruce
  Cc: dev, Carrillo, Erik G, Eads, Gage, Van Haaren,  Harry, Ma,
	Liang J, Burakov, Anatoly


> 
> 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/
?

> 
> Signed-off-by: Timothy McDaniel <timothy.mcdaniel@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


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] [PATCH] eal: add umonitor umwait to x86 cpuflags
  2020-09-11 16:37 ` Ananyev, Konstantin
@ 2020-09-14 16:45   ` McDaniel, Timothy
  2020-10-09 15:21   ` McDaniel, Timothy
  1 sibling, 0 replies; 4+ messages in thread
From: McDaniel, Timothy @ 2020-09-14 16:45 UTC (permalink / raw)
  To: Ananyev, Konstantin, Richardson, Bruce
  Cc: dev, Carrillo, Erik G, Eads, Gage, Van Haaren,  Harry, Ma,
	Liang J, Burakov, Anatoly



> -----Original Message-----
> From: Ananyev, Konstantin <konstantin.ananyev@intel.com>
> Sent: Friday, September 11, 2020 11:37 AM
> To: McDaniel, Timothy <timothy.mcdaniel@intel.com>; Richardson, Bruce
> <bruce.richardson@intel.com>
> Cc: dev@dpdk.org; Carrillo, Erik G <erik.g.carrillo@intel.com>; Eads, Gage
> <gage.eads@intel.com>; Van Haaren, Harry <harry.van.haaren@intel.com>;
> Ma, Liang J <liang.j.ma@intel.com>; Burakov, Anatoly
> <anatoly.burakov@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@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


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] [PATCH] eal: add umonitor umwait to x86 cpuflags
  2020-09-11 16:37 ` Ananyev, Konstantin
  2020-09-14 16:45   ` McDaniel, Timothy
@ 2020-10-09 15:21   ` McDaniel, Timothy
  1 sibling, 0 replies; 4+ messages in thread
From: McDaniel, Timothy @ 2020-10-09 15:21 UTC (permalink / raw)
  To: Ananyev, Konstantin, Richardson, Bruce, thomas, jerinj
  Cc: dev, Carrillo, Erik G, Eads, Gage, Van Haaren,  Harry, Ma,
	Liang J, Burakov, Anatoly



> -----Original Message-----
> From: Ananyev, Konstantin <konstantin.ananyev@intel.com>
> Sent: Friday, September 11, 2020 11:37 AM
> To: McDaniel, Timothy <timothy.mcdaniel@intel.com>; Richardson, Bruce
> <bruce.richardson@intel.com>
> Cc: dev@dpdk.org; Carrillo, Erik G <erik.g.carrillo@intel.com>; Eads, Gage
> <gage.eads@intel.com>; Van Haaren, Harry <harry.van.haaren@intel.com>;
> Ma, Liang J <liang.j.ma@intel.com>; Burakov, Anatoly
> <anatoly.burakov@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/
> ?
> 
> >
> > Signed-off-by: Timothy McDaniel <timothy.mcdaniel@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

With regards to the dependency on part of the power patch set (first patch in the WAITPKG patch series  http://patches.dpdk.org/project/dpdk/list/?series=12669 ), we understand the power team are addressing any outstanding issues today.
This should allow the DLB (https://patches.dpdk.org/project/dpdk/list/?series=12163) and DLB2 (https://patches.dpdk.org/project/dpdk/list/?series=12164) patch sets to make use of the CPU ID patch as planned.
Let us know if there is anything else outstanding. We are currently working towards the PMD merge deadline date.

Thanks, Tim



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-10-09 15:21 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-11 16:26 [dpdk-dev] [PATCH] eal: add umonitor umwait to x86 cpuflags Timothy McDaniel
2020-09-11 16:37 ` Ananyev, Konstantin
2020-09-14 16:45   ` McDaniel, Timothy
2020-10-09 15:21   ` McDaniel, Timothy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).