[dpdk-dev] [PATCH v10 0/5] use WFE for aarch64
Gavin Hu
gavin.hu at arm.com
Fri Oct 25 17:39:06 CEST 2019
V10:
- move arm specific stuff to arch/arm/rte_pause_64.h
V9:
- fix a weblink broken (David Marchand)
- define rte_wfe and rte_sev() (Ananyev Konstantin)
- explicitly define three function APIs instead of marcos (Ananyev Konstantin)
- incorporate common rte_wfe and rte_sev into the generic rte_spinlock (David Marchand)
- define arch neutral RTE_WAIT_UNTIL_EQUAL_ARCH_DEFINED (Ananyev Konstantin)
- define rte_load_ex_16/32/64 functions to use load-exclusive instruction for aarch64, which is required for wake up of WFE
- drop the rte_spinlock patch from this series, as the it calls this experimental API and it is widely included by a lot of components each requires the ALLOW_EXPERIMENRAL_API for the Makefile and meson.build, leave it to future after the experimental is removed.
V8:
- simplify dmb definition to use io barriers (David Marchand)
- define wfe() and sev() macros and use them inside normal C code (Ananyev Konstantin)
- pass memorder as parameter, not to incorporate it into function name, less functions, similar to C11 atomic intrinsics (Ananyev Konstantin)
- remove mandating RTE_FORCE_INTRINSICS in arm spinlock implementation(David Marchand)
- undef __WAIT_UNTIL_EQUAL after use (David Marchand)
- add experimental tag and warning (David Marchand)
- add the limitation of using WFE instruction in the commit log (David Marchand)
- tweak the use of RTE_FORCE_INSTRINSICS(still mandatory for aarch64) and RTE_ARM_USE_WFE for spinlock (David Marchand)
- drop the rte_ring patch from this series, as the rte_ring.h calls this API and it is widely included by a lot of components each requires the ALLOW_EXPERIMENRAL_API for the Makefile and meson.build, leave it to future after the experimental is removed.
V7:
- fix the checkpatch LONG_LINE_COMMENT issue
V6:
- squash the RTE_ARM_USE_WFE configuration entry patch into the new API patch
- move the new configuration to the end of EAL
- add doxygen comments to reflect the relaxed and acquire semantics
- correct the meson configuration
V5:
- add doxygen comments for the new APIs
- spinlock early exit without wfe if the spinlock not taken by others.
- add two patches on top for opdl and thunderx
V4:
- rename the config as CONFIG_RTE_ARM_USE_WFE to indicate it applys to arm only
- introduce a macro for assembly Skelton to reduce the duplication of code
- add one patch for nxp fslmc to address a compiling error
V3:
- Convert RFCs to patches
V2:
- Use inline functions instead of marcos
- Add load and compare in the beginning of the APIs
- Fix some style errors in asm inline
V1:
- Add the new APIs and use it for ring and locks
Gavin Hu (5):
bus/fslmc: fix the conflicting dmb function
eal: add the APIs to wait until equal
ticketlock: use new API to reduce contention on aarch64
net/thunderx: use new API to save cycles on aarch64
event/opdl: use new API to save cycles on aarch64
config/arm/meson.build | 1 +
config/common_base | 5 +
drivers/bus/fslmc/mc/fsl_mc_sys.h | 8 +-
drivers/event/opdl/Makefile | 1 +
drivers/event/opdl/meson.build | 1 +
drivers/event/opdl/opdl_ring.c | 5 +-
drivers/net/thunderx/Makefile | 1 +
drivers/net/thunderx/meson.build | 1 +
drivers/net/thunderx/nicvf_rxtx.c | 3 +-
.../common/include/arch/arm/rte_pause_64.h | 188 +++++++++++++++++++++
lib/librte_eal/common/include/generic/rte_pause.h | 108 ++++++++++++
.../common/include/generic/rte_ticketlock.h | 3 +-
12 files changed, 313 insertions(+), 12 deletions(-)
--
2.7.4
More information about the dev
mailing list