* [PATCH v1] x86: Fix incorrect scope of setting `shared_per_thread`
@ 2023-08-11 0:31 Noah Goldstein
2023-08-11 1:37 ` H.J. Lu
` (2 more replies)
0 siblings, 3 replies; 11+ messages in thread
From: Noah Goldstein @ 2023-08-11 0:31 UTC (permalink / raw)
To: libc-alpha; +Cc: goldstein.w.n, hjl.tools, carlos
The:
```
if (shared_per_thread > 0 && threads > 0)
shared_per_thread /= threads;
```
Code was accidentally moved to inside the else scope. This doesn't
match how it was previously (before af992e7abd).
This patch fixes that by putting the division after the `else` block.
---
sysdeps/x86/dl-cacheinfo.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h
index 285773039f..88316a7818 100644
--- a/sysdeps/x86/dl-cacheinfo.h
+++ b/sysdeps/x86/dl-cacheinfo.h
@@ -770,11 +770,10 @@ get_common_cache_info (long int *shared_ptr, long int * shared_per_thread_ptr, u
level. */
threads = ((cpu_features->features[CPUID_INDEX_1].cpuid.ebx >> 16)
& 0xff);
-
+ }
/* Get per-thread size of highest level cache. */
if (shared_per_thread > 0 && threads > 0)
shared_per_thread /= threads;
- }
}
/* Account for non-inclusive L2 and L3 caches. */
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v1] x86: Fix incorrect scope of setting `shared_per_thread`
2023-08-11 0:31 [PATCH v1] x86: Fix incorrect scope of setting `shared_per_thread` Noah Goldstein
@ 2023-08-11 1:37 ` H.J. Lu
2023-08-11 2:51 ` Noah Goldstein
2023-08-11 2:50 ` [PATCH v2] x86: Fix incorrect scope of setting `shared_per_thread` [BZ# 30745] Noah Goldstein
2023-08-11 17:29 ` [PATCH v3] " Noah Goldstein
2 siblings, 1 reply; 11+ messages in thread
From: H.J. Lu @ 2023-08-11 1:37 UTC (permalink / raw)
To: Noah Goldstein; +Cc: libc-alpha, carlos
On Thu, Aug 10, 2023 at 5:31 PM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
>
> The:
>
> ```
> if (shared_per_thread > 0 && threads > 0)
> shared_per_thread /= threads;
> ```
>
> Code was accidentally moved to inside the else scope. This doesn't
> match how it was previously (before af992e7abd).
>
> This patch fixes that by putting the division after the `else` block.
Since it is a regression, we should open a bug and backport this
fix.
> ---
> sysdeps/x86/dl-cacheinfo.h | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h
> index 285773039f..88316a7818 100644
> --- a/sysdeps/x86/dl-cacheinfo.h
> +++ b/sysdeps/x86/dl-cacheinfo.h
> @@ -770,11 +770,10 @@ get_common_cache_info (long int *shared_ptr, long int * shared_per_thread_ptr, u
> level. */
> threads = ((cpu_features->features[CPUID_INDEX_1].cpuid.ebx >> 16)
> & 0xff);
> -
> + }
> /* Get per-thread size of highest level cache. */
> if (shared_per_thread > 0 && threads > 0)
> shared_per_thread /= threads;
> - }
> }
>
> /* Account for non-inclusive L2 and L3 caches. */
> --
> 2.34.1
>
--
H.J.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2] x86: Fix incorrect scope of setting `shared_per_thread` [BZ# 30745]
2023-08-11 0:31 [PATCH v1] x86: Fix incorrect scope of setting `shared_per_thread` Noah Goldstein
2023-08-11 1:37 ` H.J. Lu
@ 2023-08-11 2:50 ` Noah Goldstein
2023-08-11 7:46 ` Andreas Schwab
2023-08-11 17:29 ` [PATCH v3] " Noah Goldstein
2 siblings, 1 reply; 11+ messages in thread
From: Noah Goldstein @ 2023-08-11 2:50 UTC (permalink / raw)
To: libc-alpha; +Cc: goldstein.w.n, hjl.tools, carlos
The:
```
if (shared_per_thread > 0 && threads > 0)
shared_per_thread /= threads;
```
Code was accidentally moved to inside the else scope. This doesn't
match how it was previously (before af992e7abd).
This patch fixes that by putting the division after the `else` block.
---
sysdeps/x86/dl-cacheinfo.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h
index 285773039f..88316a7818 100644
--- a/sysdeps/x86/dl-cacheinfo.h
+++ b/sysdeps/x86/dl-cacheinfo.h
@@ -770,11 +770,10 @@ get_common_cache_info (long int *shared_ptr, long int * shared_per_thread_ptr, u
level. */
threads = ((cpu_features->features[CPUID_INDEX_1].cpuid.ebx >> 16)
& 0xff);
-
+ }
/* Get per-thread size of highest level cache. */
if (shared_per_thread > 0 && threads > 0)
shared_per_thread /= threads;
- }
}
/* Account for non-inclusive L2 and L3 caches. */
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v1] x86: Fix incorrect scope of setting `shared_per_thread`
2023-08-11 1:37 ` H.J. Lu
@ 2023-08-11 2:51 ` Noah Goldstein
0 siblings, 0 replies; 11+ messages in thread
From: Noah Goldstein @ 2023-08-11 2:51 UTC (permalink / raw)
To: H.J. Lu; +Cc: libc-alpha, carlos
On Thu, Aug 10, 2023 at 8:38 PM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> On Thu, Aug 10, 2023 at 5:31 PM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
> >
> > The:
> >
> > ```
> > if (shared_per_thread > 0 && threads > 0)
> > shared_per_thread /= threads;
> > ```
> >
> > Code was accidentally moved to inside the else scope. This doesn't
> > match how it was previously (before af992e7abd).
> >
> > This patch fixes that by putting the division after the `else` block.
>
> Since it is a regression, we should open a bug and backport this
> fix.
Done: See https://sourceware.org/bugzilla/show_bug.cgi?id=30745
FYI: I changed title to include BZ number so doesn't reply in chain.
>
> > ---
> > sysdeps/x86/dl-cacheinfo.h | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h
> > index 285773039f..88316a7818 100644
> > --- a/sysdeps/x86/dl-cacheinfo.h
> > +++ b/sysdeps/x86/dl-cacheinfo.h
> > @@ -770,11 +770,10 @@ get_common_cache_info (long int *shared_ptr, long int * shared_per_thread_ptr, u
> > level. */
> > threads = ((cpu_features->features[CPUID_INDEX_1].cpuid.ebx >> 16)
> > & 0xff);
> > -
> > + }
> > /* Get per-thread size of highest level cache. */
> > if (shared_per_thread > 0 && threads > 0)
> > shared_per_thread /= threads;
> > - }
> > }
> >
> > /* Account for non-inclusive L2 and L3 caches. */
> > --
> > 2.34.1
> >
>
>
> --
> H.J.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2] x86: Fix incorrect scope of setting `shared_per_thread` [BZ# 30745]
2023-08-11 2:50 ` [PATCH v2] x86: Fix incorrect scope of setting `shared_per_thread` [BZ# 30745] Noah Goldstein
@ 2023-08-11 7:46 ` Andreas Schwab
2023-08-11 17:29 ` Noah Goldstein
0 siblings, 1 reply; 11+ messages in thread
From: Andreas Schwab @ 2023-08-11 7:46 UTC (permalink / raw)
To: Noah Goldstein via Libc-alpha; +Cc: Noah Goldstein, hjl.tools, carlos
On Aug 10 2023, Noah Goldstein via Libc-alpha wrote:
> diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h
> index 285773039f..88316a7818 100644
> --- a/sysdeps/x86/dl-cacheinfo.h
> +++ b/sysdeps/x86/dl-cacheinfo.h
> @@ -770,11 +770,10 @@ get_common_cache_info (long int *shared_ptr, long int * shared_per_thread_ptr, u
> level. */
> threads = ((cpu_features->features[CPUID_INDEX_1].cpuid.ebx >> 16)
> & 0xff);
> -
> + }
> /* Get per-thread size of highest level cache. */
> if (shared_per_thread > 0 && threads > 0)
> shared_per_thread /= threads;
> - }
Please fix the indentation.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v3] x86: Fix incorrect scope of setting `shared_per_thread` [BZ# 30745]
2023-08-11 0:31 [PATCH v1] x86: Fix incorrect scope of setting `shared_per_thread` Noah Goldstein
2023-08-11 1:37 ` H.J. Lu
2023-08-11 2:50 ` [PATCH v2] x86: Fix incorrect scope of setting `shared_per_thread` [BZ# 30745] Noah Goldstein
@ 2023-08-11 17:29 ` Noah Goldstein
2023-08-11 17:31 ` H.J. Lu
2023-08-11 19:38 ` Carlos O'Donell
2 siblings, 2 replies; 11+ messages in thread
From: Noah Goldstein @ 2023-08-11 17:29 UTC (permalink / raw)
To: libc-alpha; +Cc: goldstein.w.n, hjl.tools, carlos
The:
```
if (shared_per_thread > 0 && threads > 0)
shared_per_thread /= threads;
```
Code was accidentally moved to inside the else scope. This doesn't
match how it was previously (before af992e7abd).
This patch fixes that by putting the division after the `else` block.
---
sysdeps/x86/dl-cacheinfo.h | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h
index 285773039f..5ddb35c9d9 100644
--- a/sysdeps/x86/dl-cacheinfo.h
+++ b/sysdeps/x86/dl-cacheinfo.h
@@ -770,11 +770,10 @@ get_common_cache_info (long int *shared_ptr, long int * shared_per_thread_ptr, u
level. */
threads = ((cpu_features->features[CPUID_INDEX_1].cpuid.ebx >> 16)
& 0xff);
-
- /* Get per-thread size of highest level cache. */
- if (shared_per_thread > 0 && threads > 0)
- shared_per_thread /= threads;
}
+ /* Get per-thread size of highest level cache. */
+ if (shared_per_thread > 0 && threads > 0)
+ shared_per_thread /= threads;
}
/* Account for non-inclusive L2 and L3 caches. */
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2] x86: Fix incorrect scope of setting `shared_per_thread` [BZ# 30745]
2023-08-11 7:46 ` Andreas Schwab
@ 2023-08-11 17:29 ` Noah Goldstein
0 siblings, 0 replies; 11+ messages in thread
From: Noah Goldstein @ 2023-08-11 17:29 UTC (permalink / raw)
To: Andreas Schwab; +Cc: Noah Goldstein via Libc-alpha, hjl.tools, carlos
On Fri, Aug 11, 2023 at 2:46 AM Andreas Schwab <schwab@linux-m68k.org> wrote:
>
> On Aug 10 2023, Noah Goldstein via Libc-alpha wrote:
>
> > diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h
> > index 285773039f..88316a7818 100644
> > --- a/sysdeps/x86/dl-cacheinfo.h
> > +++ b/sysdeps/x86/dl-cacheinfo.h
> > @@ -770,11 +770,10 @@ get_common_cache_info (long int *shared_ptr, long int * shared_per_thread_ptr, u
> > level. */
> > threads = ((cpu_features->features[CPUID_INDEX_1].cpuid.ebx >> 16)
> > & 0xff);
> > -
> > + }
> > /* Get per-thread size of highest level cache. */
> > if (shared_per_thread > 0 && threads > 0)
> > shared_per_thread /= threads;
> > - }
>
> Please fix the indentation.
>
Done.
> --
> Andreas Schwab, schwab@linux-m68k.org
> GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
> "And now for something completely different."
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3] x86: Fix incorrect scope of setting `shared_per_thread` [BZ# 30745]
2023-08-11 17:29 ` [PATCH v3] " Noah Goldstein
@ 2023-08-11 17:31 ` H.J. Lu
2023-08-11 18:35 ` Carlos O'Donell
2023-08-11 19:38 ` Carlos O'Donell
1 sibling, 1 reply; 11+ messages in thread
From: H.J. Lu @ 2023-08-11 17:31 UTC (permalink / raw)
To: Noah Goldstein; +Cc: libc-alpha, carlos
On Fri, Aug 11, 2023 at 10:29 AM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
>
> The:
>
> ```
> if (shared_per_thread > 0 && threads > 0)
> shared_per_thread /= threads;
> ```
>
> Code was accidentally moved to inside the else scope. This doesn't
> match how it was previously (before af992e7abd).
>
> This patch fixes that by putting the division after the `else` block.
> ---
> sysdeps/x86/dl-cacheinfo.h | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h
> index 285773039f..5ddb35c9d9 100644
> --- a/sysdeps/x86/dl-cacheinfo.h
> +++ b/sysdeps/x86/dl-cacheinfo.h
> @@ -770,11 +770,10 @@ get_common_cache_info (long int *shared_ptr, long int * shared_per_thread_ptr, u
> level. */
> threads = ((cpu_features->features[CPUID_INDEX_1].cpuid.ebx >> 16)
> & 0xff);
> -
> - /* Get per-thread size of highest level cache. */
> - if (shared_per_thread > 0 && threads > 0)
> - shared_per_thread /= threads;
> }
> + /* Get per-thread size of highest level cache. */
> + if (shared_per_thread > 0 && threads > 0)
> + shared_per_thread /= threads;
> }
>
> /* Account for non-inclusive L2 and L3 caches. */
> --
> 2.34.1
>
LGTM.
Thanks.
--
H.J.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3] x86: Fix incorrect scope of setting `shared_per_thread` [BZ# 30745]
2023-08-11 17:31 ` H.J. Lu
@ 2023-08-11 18:35 ` Carlos O'Donell
0 siblings, 0 replies; 11+ messages in thread
From: Carlos O'Donell @ 2023-08-11 18:35 UTC (permalink / raw)
To: H.J. Lu, Noah Goldstein; +Cc: libc-alpha, carlos
On 8/11/23 13:31, H.J. Lu via Libc-alpha wrote:
> On Fri, Aug 11, 2023 at 10:29 AM Noah Goldstein <goldstein.w.n@gmail.com> wrote:
>>
>> The:
>>
>> ```
>> if (shared_per_thread > 0 && threads > 0)
>> shared_per_thread /= threads;
>> ```
>>
>> Code was accidentally moved to inside the else scope. This doesn't
>> match how it was previously (before af992e7abd).
>>
>> This patch fixes that by putting the division after the `else` block.
>> ---
>> sysdeps/x86/dl-cacheinfo.h | 7 +++----
>> 1 file changed, 3 insertions(+), 4 deletions(-)
>>
>> diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h
>> index 285773039f..5ddb35c9d9 100644
>> --- a/sysdeps/x86/dl-cacheinfo.h
>> +++ b/sysdeps/x86/dl-cacheinfo.h
>> @@ -770,11 +770,10 @@ get_common_cache_info (long int *shared_ptr, long int * shared_per_thread_ptr, u
>> level. */
>> threads = ((cpu_features->features[CPUID_INDEX_1].cpuid.ebx >> 16)
>> & 0xff);
>> -
>> - /* Get per-thread size of highest level cache. */
>> - if (shared_per_thread > 0 && threads > 0)
>> - shared_per_thread /= threads;
>> }
>> + /* Get per-thread size of highest level cache. */
>> + if (shared_per_thread > 0 && threads > 0)
>> + shared_per_thread /= threads;
>> }
>>
>> /* Account for non-inclusive L2 and L3 caches. */
>> --
>> 2.34.1
>>
>
> LGTM.
>
> Thanks.
This impacts CentOS 8 Stream and CentOS 9 Stream, which have backports of this
sequence of changes. I'm testing the changes right now.
--
Cheers,
Carlos.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3] x86: Fix incorrect scope of setting `shared_per_thread` [BZ# 30745]
2023-08-11 17:29 ` [PATCH v3] " Noah Goldstein
2023-08-11 17:31 ` H.J. Lu
@ 2023-08-11 19:38 ` Carlos O'Donell
2023-08-11 20:33 ` Noah Goldstein
1 sibling, 1 reply; 11+ messages in thread
From: Carlos O'Donell @ 2023-08-11 19:38 UTC (permalink / raw)
To: Noah Goldstein, libc-alpha; +Cc: hjl.tools, carlos
On 8/11/23 13:29, Noah Goldstein via Libc-alpha wrote:
> The:
>
> ```
> if (shared_per_thread > 0 && threads > 0)
> shared_per_thread /= threads;
> ```
>
> Code was accidentally moved to inside the else scope. This doesn't
> match how it was previously (before af992e7abd).
>
> This patch fixes that by putting the division after the `else` block.
LGTM. Tested on i686 and x86_64.
I also backported this to c8s and c9s and re-tested and everything
passes there without regression on i686, x86_64.
I'm going to do some additional testing, but that's enough for me
to see this get pushed. Thank you!
Tested-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
> ---
> sysdeps/x86/dl-cacheinfo.h | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h
> index 285773039f..5ddb35c9d9 100644
> --- a/sysdeps/x86/dl-cacheinfo.h
> +++ b/sysdeps/x86/dl-cacheinfo.h
> @@ -770,11 +770,10 @@ get_common_cache_info (long int *shared_ptr, long int * shared_per_thread_ptr, u
> level. */
> threads = ((cpu_features->features[CPUID_INDEX_1].cpuid.ebx >> 16)
> & 0xff);
> -
> - /* Get per-thread size of highest level cache. */
> - if (shared_per_thread > 0 && threads > 0)
> - shared_per_thread /= threads;
> }
> + /* Get per-thread size of highest level cache. */
> + if (shared_per_thread > 0 && threads > 0)
> + shared_per_thread /= threads;
> }
>
> /* Account for non-inclusive L2 and L3 caches. */
--
Cheers,
Carlos.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v3] x86: Fix incorrect scope of setting `shared_per_thread` [BZ# 30745]
2023-08-11 19:38 ` Carlos O'Donell
@ 2023-08-11 20:33 ` Noah Goldstein
0 siblings, 0 replies; 11+ messages in thread
From: Noah Goldstein @ 2023-08-11 20:33 UTC (permalink / raw)
To: Carlos O'Donell; +Cc: libc-alpha, hjl.tools, carlos
On Fri, Aug 11, 2023 at 2:38 PM Carlos O'Donell <carlos@redhat.com> wrote:
>
> On 8/11/23 13:29, Noah Goldstein via Libc-alpha wrote:
> > The:
> >
> > ```
> > if (shared_per_thread > 0 && threads > 0)
> > shared_per_thread /= threads;
> > ```
> >
> > Code was accidentally moved to inside the else scope. This doesn't
> > match how it was previously (before af992e7abd).
> >
> > This patch fixes that by putting the division after the `else` block.
>
> LGTM. Tested on i686 and x86_64.
>
> I also backported this to c8s and c9s and re-tested and everything
> passes there without regression on i686, x86_64.
>
> I'm going to do some additional testing, but that's enough for me
> to see this get pushed. Thank you!
>
> Tested-by: Carlos O'Donell <carlos@redhat.com>
> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
>
> > ---
> > sysdeps/x86/dl-cacheinfo.h | 7 +++----
> > 1 file changed, 3 insertions(+), 4 deletions(-)
> >
> > diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h
> > index 285773039f..5ddb35c9d9 100644
> > --- a/sysdeps/x86/dl-cacheinfo.h
> > +++ b/sysdeps/x86/dl-cacheinfo.h
> > @@ -770,11 +770,10 @@ get_common_cache_info (long int *shared_ptr, long int * shared_per_thread_ptr, u
> > level. */
> > threads = ((cpu_features->features[CPUID_INDEX_1].cpuid.ebx >> 16)
> > & 0xff);
> > -
> > - /* Get per-thread size of highest level cache. */
> > - if (shared_per_thread > 0 && threads > 0)
> > - shared_per_thread /= threads;
> > }
> > + /* Get per-thread size of highest level cache. */
> > + if (shared_per_thread > 0 && threads > 0)
> > + shared_per_thread /= threads;
> > }
> >
> > /* Account for non-inclusive L2 and L3 caches. */
>
> --
> Cheers,
> Carlos.
>
Any objections to me backporting this to 2.38 release branch?
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2023-08-11 20:34 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-11 0:31 [PATCH v1] x86: Fix incorrect scope of setting `shared_per_thread` Noah Goldstein
2023-08-11 1:37 ` H.J. Lu
2023-08-11 2:51 ` Noah Goldstein
2023-08-11 2:50 ` [PATCH v2] x86: Fix incorrect scope of setting `shared_per_thread` [BZ# 30745] Noah Goldstein
2023-08-11 7:46 ` Andreas Schwab
2023-08-11 17:29 ` Noah Goldstein
2023-08-11 17:29 ` [PATCH v3] " Noah Goldstein
2023-08-11 17:31 ` H.J. Lu
2023-08-11 18:35 ` Carlos O'Donell
2023-08-11 19:38 ` Carlos O'Donell
2023-08-11 20:33 ` Noah Goldstein
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).