diff mbox series

openmp: Fix up gomp_affinity_init_numa_domains

Message ID YjNexEa9NUb+odp4@tucnak
State New
Headers show
Series openmp: Fix up gomp_affinity_init_numa_domains | expand

Commit Message

Jakub Jelinek March 17, 2022, 4:16 p.m. UTC
Hi!

On Thu, Nov 11, 2021 at 02:14:05PM +0100, Thomas Schwinge wrote:
> There appears to be yet another issue: there still are quite a number of
> 'FAIL: libgomp.c/places-10.c execution test' reports on
> <gcc-testresults@gcc.gnu.org>.  Also in my testing testing, on a system
> where '/sys/devices/system/node/online' contains '0-1', I get a FAIL:
> 
>     [...]
>     OPENMP DISPLAY ENVIRONMENT BEGIN
>       _OPENMP = '201511'
>       OMP_DYNAMIC = 'FALSE'
>       OMP_NESTED = 'FALSE'
>       OMP_NUM_THREADS = '8'
>       OMP_SCHEDULE = 'DYNAMIC'
>       OMP_PROC_BIND = 'TRUE'
>       OMP_PLACES = '{0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30},{FAIL: libgomp.c/places-10.c execution test

I've finally managed to debug this (by dumping used /sys/ files from
an affected system in Fedora build system, replacing /sys/ with /tmp/
in gcc sources and populating there those files), I think following patch
ought to fix it.
I'll test it tonight in my bootstrap/regtest (but that's a non-numa box),
can somebody with a box where places-10.c fails reliably test this too?

Thanks.

2022-03-17  Jakub Jelinek  <jakub@redhat.com>

	* config/linux/affinity.c (gomp_affinity_init_numa_domains): Move seen
	variable next to pl variable.



	Jakub

Comments

Thomas Schwinge March 18, 2022, 7:21 a.m. UTC | #1
Hi Jakub!

On 2022-03-17T17:16:04+0100, Jakub Jelinek <jakub@redhat.com> wrote:
> On Thu, Nov 11, 2021 at 02:14:05PM +0100, Thomas Schwinge wrote:
>> There appears to be yet another issue: there still are quite a number of
>> 'FAIL: libgomp.c/places-10.c execution test' reports on
>> <gcc-testresults@gcc.gnu.org>.  Also in my testing testing, on a system
>> where '/sys/devices/system/node/online' contains '0-1', I get a FAIL:
>>
>>     [...]
>>     OPENMP DISPLAY ENVIRONMENT BEGIN
>>       _OPENMP = '201511'
>>       OMP_DYNAMIC = 'FALSE'
>>       OMP_NESTED = 'FALSE'
>>       OMP_NUM_THREADS = '8'
>>       OMP_SCHEDULE = 'DYNAMIC'
>>       OMP_PROC_BIND = 'TRUE'
>>       OMP_PLACES = '{0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30},{FAIL: libgomp.c/places-10.c execution test
>
> I've finally managed to debug this (by dumping used /sys/ files from
> an affected system in Fedora build system, replacing /sys/ with /tmp/
> in gcc sources and populating there those files), I think following patch
> ought to fix it.
> I'll test it tonight in my bootstrap/regtest (but that's a non-numa box),
> can somebody with a box where places-10.c fails reliably test this too?

Thanks, confirmed to resolve all the 'libgomp.c/places-10.c' FAILs that
I've seen on different systems.


Grüße
 Thomas


> 2022-03-17  Jakub Jelinek  <jakub@redhat.com>
>
>       * config/linux/affinity.c (gomp_affinity_init_numa_domains): Move seen
>       variable next to pl variable.
>
> --- libgomp/config/linux/affinity.c.jj        2022-01-11 23:11:23.887269117 +0100
> +++ libgomp/config/linux/affinity.c   2022-03-17 17:05:38.129008653 +0100
> @@ -411,11 +411,11 @@ gomp_affinity_init_numa_domains (unsigne
>           {
>             char *p = line;
>             void *pl = NULL;
> +           bool seen = false;
>
>             while (*p && *p != '\n')
>               {
>                 unsigned long first, last;
> -               bool seen = false;
>
>                 errno = 0;
>                 first = strtoul (p, &end, 10);
>
>
>       Jakub
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
diff mbox series

Patch

--- libgomp/config/linux/affinity.c.jj	2022-01-11 23:11:23.887269117 +0100
+++ libgomp/config/linux/affinity.c	2022-03-17 17:05:38.129008653 +0100
@@ -411,11 +411,11 @@  gomp_affinity_init_numa_domains (unsigne
 	    {
 	      char *p = line;
 	      void *pl = NULL;
+	      bool seen = false;
 
 	      while (*p && *p != '\n')
 		{
 		  unsigned long first, last;
-		  bool seen = false;
 
 		  errno = 0;
 		  first = strtoul (p, &end, 10);