[ 
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]

Reply via email to