[
https://issues.apache.org/jira/browse/IMPALA-12122?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sebastian Pop updated IMPALA-12122:
-----------------------------------
Description:
A "yield" instruction in aarch64 is essentially a nop, and does not cause
enough delay to help backoff.
"isb" is a barrier that, especially inside a loop, creates a small delay
without consuming ALU resources.
Experiments shown that adding the isb instruction improves stability and
reduces result jitter.
Adding more delay than a single isb reduces performance.
was:
Chromium switched the implementation of atomicops.h and family to use the C++11
atomics library in this change:
[https://github.com/chromium/chromium/commit/57a4e4a50c673c25e9cdaab53e32f6e53aa0b574]
It allowed for a large simplification later on where most of the
platform-specific logic and assembly could be removed. This seems easier to
maintain than the current code.
> Use isb instead of yield on arm64
> ---------------------------------
>
> Key: IMPALA-12122
> URL: https://issues.apache.org/jira/browse/IMPALA-12122
> Project: IMPALA
> Issue Type: Improvement
> Components: Backend
> Affects Versions: Impala 4.2.0
> Reporter: Sebastian Pop
> Priority: Major
>
> A "yield" instruction in aarch64 is essentially a nop, and does not cause
> enough delay to help backoff.
> "isb" is a barrier that, especially inside a loop, creates a small delay
> without consuming ALU resources.
> Experiments shown that adding the isb instruction improves stability and
> reduces result jitter.
> Adding more delay than a single isb reduces performance.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]