Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use the 64b inner:monotonize() implementation not the 128b one for aarch64 #88651

Merged
merged 1 commit into from
Oct 5, 2021

Commits on Sep 4, 2021

  1. Use the 64b inner:monotonize() implementation not the 128b one for aa…

    …rch64
    
    aarch64 prior to v8.4 (FEAT_LSE2) doesn't have an instruction that guarantees
    untorn 128b reads except for completing a 128b load/store exclusive pair
    (ldxp/stxp) or compare-and-swap (casp) successfully. The requirement to
    complete a 128b read+write atomic is actually more expensive and more unfair
    than the previous implementation of monotonize() which used a Mutex on aarch64,
    especially at large core counts.  For aarch64 switch to the 64b atomic
    implementation which is about 13x faster for a benchmark that involves many
    calls to Instant::now().
    AGSaidi committed Sep 4, 2021
    Configuration menu
    Copy the full SHA
    ce450f8 View commit details
    Browse the repository at this point in the history