• Linus Torvalds's avatar
    x86: set FSRS automatically on AMD CPUs that have FSRM · e046fe5a
    Linus Torvalds authored
    So Intel introduced the FSRS ("Fast Short REP STOS") CPU capability bit,
    because they seem to have done the (much simpler) REP STOS optimizations
    separately and later than the REP MOVS one.
    
    In contrast, when AMD introduced support for FSRM ("Fast Short REP
    MOVS"), in the Zen 3 core, it appears to have improved the REP STOS case
    at the same time, and since the FSRS bit was added by Intel later, it
    doesn't show up on those AMD Zen 3 cores.
    
    And now that we made use of FSRS for the "rep stos" conditional, that
    made those AMD machines unnecessarily slower.  The Intel situation where
    "rep movs" is fast, but "rep stos" isn't, is just odd.  The 'stos' case
    is a lot simpler with no aliasing, no mutual alignment issues, no
    complicated cases.
    
    So this just sets FSRS automatically when FSRM is available on AMD
    machines, to get back all the nice REP STOS goodness in Zen 3.
    Reported-and-tested-by: default avatarJens Axboe <axboe@kernel.dk>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    e046fe5a
amd.c 31.5 KB