答复: [PATCH] eal/ppc64: add support for rte pause
Checks
Commit Message
-----邮件原件-----
发件人: Jerin Jacob <jerin.jacob@caviumnetworks.com>
发送时间: 2018年10月7日 14:19
收件人: Chao Zhu <chaozhu@linux.vnet.ibm.com>
抄送: dev@dpdk.org; thomas@monjalon.net; gowrishankar.m@linux.vnet.ibm.com;
ola.liljedahl@arm.com; Jerin Jacob <jerin.jacob@caviumnetworks.com>
主题: [dpdk-dev] [PATCH] eal/ppc64: add support for rte pause
Add support for rte_pause() implementation for ppc64.
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
The reference implementation for Linux's cpu_relax() for ppc64 is at
https://elixir.bootlin.com/linux/latest/source/arch/powerpc/include/asm/proc
essor.h#L440
---
lib/librte_eal/common/include/arch/ppc_64/rte_pause.h | 7 +++++++
1 file changed, 7 insertions(+)
Comments
-----Original Message-----
> Date: Fri, 12 Oct 2018 10:24:16 +0800
> From: Chao Zhu <chaozhu@linux.vnet.ibm.com>
> To: 'Jerin Jacob' <jerin.jacob@caviumnetworks.com>
> CC: dev@dpdk.org, thomas@monjalon.net, gowrishankar.m@linux.vnet.ibm.com,
> ola.liljedahl@arm.com
> Subject: 答复: [dpdk-dev] [PATCH] eal/ppc64: add support for rte pause
> X-Mailer: Microsoft Outlook 16.0
>
>
> -----邮件原件-----
> 发件人: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> 发送时间: 2018年10月7日 14:19
> 收件人: Chao Zhu <chaozhu@linux.vnet.ibm.com>
> 抄送: dev@dpdk.org; thomas@monjalon.net; gowrishankar.m@linux.vnet.ibm.com;
> ola.liljedahl@arm.com; Jerin Jacob <jerin.jacob@caviumnetworks.com>
> 主题: [dpdk-dev] [PATCH] eal/ppc64: add support for rte pause
>
> Add support for rte_pause() implementation for ppc64.
>
> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> ---
>
> The reference implementation for Linux's cpu_relax() for ppc64 is at
> https://elixir.bootlin.com/linux/latest/source/arch/powerpc/include/asm/proc
> essor.h#L440
>
> ---
> lib/librte_eal/common/include/arch/ppc_64/rte_pause.h | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_pause.h
> b/lib/librte_eal/common/include/arch/ppc_64/rte_pause.h
> index 8bd835764..16e47ce22 100644
> --- a/lib/librte_eal/common/include/arch/ppc_64/rte_pause.h
> +++ b/lib/librte_eal/common/include/arch/ppc_64/rte_pause.h
> @@ -9,10 +9,17 @@
> extern "C" {
> #endif
>
> +#include "rte_atomic.h"
> +
> #include "generic/rte_pause.h"
>
> static inline void rte_pause(void)
> {
> + /* Set hardware multi-threading low priority */
> + asm volatile("or 1,1,1");
> + /* Set hardware multi-threading medium priority */
> + asm volatile("or 2,2,2");
> + rte_compiler_barrier();
> }
>
> #ifdef __cplusplus
> --
> 2.19.0
>
> Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
Thomas,
Just noticed, due to some reason, The above Acked-by: is not reflected in patchwork.
http://patches.dpdk.org/patch/46195/
Probably because, it was not a "inline" reply which patchwork couldn't parse it.
>
>
12/10/2018 06:12, Jerin Jacob:
> -----Original Message-----
> > Date: Fri, 12 Oct 2018 10:24:16 +0800
> > From: Chao Zhu <chaozhu@linux.vnet.ibm.com>
> > To: 'Jerin Jacob' <jerin.jacob@caviumnetworks.com>
> > CC: dev@dpdk.org, thomas@monjalon.net, gowrishankar.m@linux.vnet.ibm.com,
> > ola.liljedahl@arm.com
> > Subject: 答复: [dpdk-dev] [PATCH] eal/ppc64: add support for rte pause
> > X-Mailer: Microsoft Outlook 16.0
> >
> >
> > -----邮件原件-----
> > 发件人: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> > 发送时间: 2018年10月7日 14:19
> > 收件人: Chao Zhu <chaozhu@linux.vnet.ibm.com>
> > 抄送: dev@dpdk.org; thomas@monjalon.net; gowrishankar.m@linux.vnet.ibm.com;
> > ola.liljedahl@arm.com; Jerin Jacob <jerin.jacob@caviumnetworks.com>
> > 主题: [dpdk-dev] [PATCH] eal/ppc64: add support for rte pause
> >
> > Add support for rte_pause() implementation for ppc64.
> >
> > Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> > ---
> >
> > The reference implementation for Linux's cpu_relax() for ppc64 is at
> > https://elixir.bootlin.com/linux/latest/source/arch/powerpc/include/asm/proc
> > essor.h#L440
> >
> > ---
> > lib/librte_eal/common/include/arch/ppc_64/rte_pause.h | 7 +++++++
> > 1 file changed, 7 insertions(+)
> >
> > diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_pause.h
> > b/lib/librte_eal/common/include/arch/ppc_64/rte_pause.h
> > index 8bd835764..16e47ce22 100644
> > --- a/lib/librte_eal/common/include/arch/ppc_64/rte_pause.h
> > +++ b/lib/librte_eal/common/include/arch/ppc_64/rte_pause.h
> > @@ -9,10 +9,17 @@
> > extern "C" {
> > #endif
> >
> > +#include "rte_atomic.h"
> > +
> > #include "generic/rte_pause.h"
> >
> > static inline void rte_pause(void)
> > {
> > + /* Set hardware multi-threading low priority */
> > + asm volatile("or 1,1,1");
> > + /* Set hardware multi-threading medium priority */
> > + asm volatile("or 2,2,2");
> > + rte_compiler_barrier();
> > }
> >
> > #ifdef __cplusplus
> > --
> > 2.19.0
> >
> > Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
>
> Thomas,
>
> Just noticed, due to some reason, The above Acked-by: is not reflected in patchwork.
>
> http://patches.dpdk.org/patch/46195/
>
> Probably because, it was not a "inline" reply which patchwork couldn't parse it.
Or more probably, there are some special characters in the email or headers
which make patchwork parsing to fail.
12/10/2018 08:50, Thomas Monjalon:
> 12/10/2018 06:12, Jerin Jacob:
> > > --
> > > 2.19.0
> > >
> > > Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
> >
> > Thomas,
> >
> > Just noticed, due to some reason, The above Acked-by: is not reflected in patchwork.
> >
> > http://patches.dpdk.org/patch/46195/
> >
> > Probably because, it was not a "inline" reply which patchwork couldn't parse it.
>
> Or more probably, there are some special characters in the email or headers
> which make patchwork parsing to fail.
I know why:
Chao was not quoting original mail and answered below the "git signature"
so it was ignored.
b/lib/librte_eal/common/include/arch/ppc_64/rte_pause.h
@@ -9,10 +9,17 @@
extern "C" {
#endif
+#include "rte_atomic.h"
+
#include "generic/rte_pause.h"
static inline void rte_pause(void)
{
+ /* Set hardware multi-threading low priority */
+ asm volatile("or 1,1,1");
+ /* Set hardware multi-threading medium priority */
+ asm volatile("or 2,2,2");
+ rte_compiler_barrier();
}
#ifdef __cplusplus