]> git.ipfire.org Git - thirdparty/glibc.git/commit
x86: Adding an upper bound for Enhanced REP MOVSB.
authorSajan Karumanchi <sajan.karumanchi@amd.com>
Tue, 2 Feb 2021 11:42:14 +0000 (12:42 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Tue, 2 Feb 2021 11:42:15 +0000 (12:42 +0100)
commit6e02b3e9327b7dbb063958d2b124b64fcb4bbe3f
treef5fa119e5c2db62c16cdbaaa01d856da390e607a
parentcaa60b79f8c98e97455078542a14b4c750e48ede
x86: Adding an upper bound for Enhanced REP MOVSB.

In the process of optimizing memcpy for AMD machines, we have found the
vector move operations are outperforming enhanced REP MOVSB for data
transfers above the L2 cache size on Zen3 architectures.
To handle this use case, we are adding an upper bound parameter on
enhanced REP MOVSB:'__x86_rep_movsb_stop_threshold'.
As per large-bench results, we are configuring this parameter to the
L2 cache size for AMD machines and applicable from Zen3 architecture
supporting the ERMS feature.
For architectures other than AMD, it is the computed value of
non-temporal threshold parameter.

Reviewed-by: Premachandra Mallappa <premachandra.mallappa@amd.com>
sysdeps/x86/cacheinfo.h
sysdeps/x86/dl-cacheinfo.h
sysdeps/x86/include/cpu-features.h
sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S