Message ID | 20240614180158.4084300-1-goldstein.w.n@gmail.com |
---|---|
State | New |
Headers | show |
Series | [v1] x86: Fix value for `x86_memset_non_temporal_threshold` when it is undesirable | expand |
On Fri, Jun 14, 2024 at 01:01:58PM -0500, Noah Goldstein wrote: > When we don't want to use non-temporal stores for memset, we set > `x86_memset_non_temporal_threshold` to SIZE_MAX. > > The current code, however, we using `maximum_non_temporal_threshold` > as the upper bound which is `SIZE_MAX >> 4` so we ended up with a > value of `0`. > > Fix is to just use `SIZE_MAX` as the upper bound for when setting the > tunable. > --- > sysdeps/x86/dl-cacheinfo.h | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h > index d2fe61b997..3a6ec4ef9f 100644 > --- a/sysdeps/x86/dl-cacheinfo.h > +++ b/sysdeps/x86/dl-cacheinfo.h > @@ -1044,9 +1044,9 @@ dl_init_cacheinfo (struct cpu_features *cpu_features) > TUNABLE_SET_WITH_BOUNDS (x86_non_temporal_threshold, non_temporal_threshold, > minimum_non_temporal_threshold, > maximum_non_temporal_threshold); > - TUNABLE_SET_WITH_BOUNDS ( > - x86_memset_non_temporal_threshold, memset_non_temporal_threshold, > - minimum_non_temporal_threshold, maximum_non_temporal_threshold); > + TUNABLE_SET_WITH_BOUNDS (x86_memset_non_temporal_threshold, > + memset_non_temporal_threshold, > + minimum_non_temporal_threshold, SIZE_MAX); > TUNABLE_SET_WITH_BOUNDS (x86_rep_movsb_threshold, rep_movsb_threshold, > minimum_rep_movsb_threshold, SIZE_MAX); > TUNABLE_SET_WITH_BOUNDS (x86_rep_stosb_threshold, rep_stosb_threshold, 1, > -- Yap, that does it, thanks! Tested-by: Borislav Petkov (AMD) <bp@alien8.de>
On Fri, Jun 14, 2024 at 11:02 AM Noah Goldstein <goldstein.w.n@gmail.com> wrote: > > When we don't want to use non-temporal stores for memset, we set > `x86_memset_non_temporal_threshold` to SIZE_MAX. > > The current code, however, we using `maximum_non_temporal_threshold` > as the upper bound which is `SIZE_MAX >> 4` so we ended up with a > value of `0`. > > Fix is to just use `SIZE_MAX` as the upper bound for when setting the > tunable. > --- > sysdeps/x86/dl-cacheinfo.h | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h > index d2fe61b997..3a6ec4ef9f 100644 > --- a/sysdeps/x86/dl-cacheinfo.h > +++ b/sysdeps/x86/dl-cacheinfo.h > @@ -1044,9 +1044,9 @@ dl_init_cacheinfo (struct cpu_features *cpu_features) > TUNABLE_SET_WITH_BOUNDS (x86_non_temporal_threshold, non_temporal_threshold, > minimum_non_temporal_threshold, > maximum_non_temporal_threshold); > - TUNABLE_SET_WITH_BOUNDS ( > - x86_memset_non_temporal_threshold, memset_non_temporal_threshold, > - minimum_non_temporal_threshold, maximum_non_temporal_threshold); > + TUNABLE_SET_WITH_BOUNDS (x86_memset_non_temporal_threshold, > + memset_non_temporal_threshold, > + minimum_non_temporal_threshold, SIZE_MAX); > TUNABLE_SET_WITH_BOUNDS (x86_rep_movsb_threshold, rep_movsb_threshold, > minimum_rep_movsb_threshold, SIZE_MAX); > TUNABLE_SET_WITH_BOUNDS (x86_rep_stosb_threshold, rep_stosb_threshold, 1, > -- > 2.34.1 > LGTM. Reviewed-by: H.J. Lu <hjl.tools@gmail.com> Thanks.
diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h index d2fe61b997..3a6ec4ef9f 100644 --- a/sysdeps/x86/dl-cacheinfo.h +++ b/sysdeps/x86/dl-cacheinfo.h @@ -1044,9 +1044,9 @@ dl_init_cacheinfo (struct cpu_features *cpu_features) TUNABLE_SET_WITH_BOUNDS (x86_non_temporal_threshold, non_temporal_threshold, minimum_non_temporal_threshold, maximum_non_temporal_threshold); - TUNABLE_SET_WITH_BOUNDS ( - x86_memset_non_temporal_threshold, memset_non_temporal_threshold, - minimum_non_temporal_threshold, maximum_non_temporal_threshold); + TUNABLE_SET_WITH_BOUNDS (x86_memset_non_temporal_threshold, + memset_non_temporal_threshold, + minimum_non_temporal_threshold, SIZE_MAX); TUNABLE_SET_WITH_BOUNDS (x86_rep_movsb_threshold, rep_movsb_threshold, minimum_rep_movsb_threshold, SIZE_MAX); TUNABLE_SET_WITH_BOUNDS (x86_rep_stosb_threshold, rep_stosb_threshold, 1,