[Bug 219399] System panics after several hours of 14-threads-compilation orgies using poudriere on AMD Ryzen...

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Jul 20 01:04:20 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219399

--- Comment #71 from Don Lewis <truckman at FreeBSD.org> ---
(In reply to Nils Beyer from comment #67)

The Linux version of the test pins the entire process to a single
randomly-chosen CPU.  The following diff should make it work the same on
FreeBSD:

--- ryzen_segv_test.c.orig      2017-07-19 17:26:47.686991000 -0700
+++ ryzen_segv_test.c   2017-07-19 17:35:56.406073000 -0700
@@ -69,6 +69,7 @@
 #include <sys/mman.h>
 #include <sched.h>
 #include <sys/types.h>
+#include <sys/cpuset.h>
 #include <unistd.h>

 #endif
@@ -332,7 +333,7 @@
        pthread_t t1, t2, t3;
 #ifdef _MSC_VER
 #else
-       cpu_set_t cpuset;
+       cpuset_t cpuset;
        int cpu;
 #endif
        pid_t pid = getpid();
@@ -365,7 +366,7 @@
        cpu = random() % n_cpus;
        CPU_ZERO(&cpuset);
        CPU_SET(cpu, &cpuset);
-       sched_setaffinity(pid, sizeof(cpu_set_t), &cpuset);
+       cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, pid,
sizeof(cpuset_t), &cpuset);
        fprintf(stderr, "PID:%d CPU:%d\n", (int)pid, cpu);
 #endif


With that change, I don't see any problems on my machine.  That seems to be an
unfairly easy test, though.

If I nuke the same code that you did, I still don't see any failures, though
the runtime of each iteration seems to vary a lot.  With loops set to 10000000,
the process may run anywhere from a few seconds to close to a minute:

12.804u 0.007s 0:04.27 299.7%   10+167k 2+0io 0pf+0w
23.431u 0.000s 0:07.81 300.0%   10+167k 2+0io 0pf+0w
9.789u 0.000s 0:03.26 300.0%    10+167k 2+0io 0pf+0w
9.656u 0.007s 0:03.22 299.6%    10+167k 2+0io 0pf+0w
9.596u 0.000s 0:03.20 299.6%    10+167k 2+0io 0pf+0w
12.041u 0.000s 0:04.01 300.2%   10+167k 2+0io 0pf+0w
22.294u 0.007s 0:07.43 300.0%   10+167k 2+0io 0pf+0w
13.290u 0.000s 0:04.43 300.0%   10+167k 2+0io 0pf+0w
10.939u 0.007s 0:03.65 299.4%   10+167k 2+0io 0pf+0w
12.953u 0.000s 0:04.31 300.4%   10+167k 2+0io 0pf+0w
11.994u 0.000s 0:04.00 299.7%   10+167k 2+0io 0pf+0w
13.084u 0.000s 0:04.36 300.0%   10+167k 2+0io 0pf+0w
125.599u 0.007s 0:41.87 299.9%  10+167k 2+0io 0pf+0w

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list