[dpdk-dev] 答复: [PATCH] eal/ppc64: add support for rte pause
Chao Zhu
chaozhu at linux.vnet.ibm.com
Fri Oct 12 04:24:16 CEST 2018
-----邮件原件-----
发件人: Jerin Jacob <jerin.jacob at caviumnetworks.com>
发送时间: 2018年10月7日 14:19
收件人: Chao Zhu <chaozhu at linux.vnet.ibm.com>
抄送: dev at dpdk.org; thomas at monjalon.net; gowrishankar.m at linux.vnet.ibm.com;
ola.liljedahl at arm.com; Jerin Jacob <jerin.jacob at 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 at 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 at linux.vnet.ibm.com>
More information about the dev
mailing list