Date: Thu, 20 Jul 2017 18:07:41 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 219399] System panics after several hours of 14-threads-compilation orgies using poudriere on AMD Ryzen... Message-ID: <bug-219399-8-0yEvqzuPa8@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-219399-8@https.bugs.freebsd.org/bugzilla/>
index | next in thread | previous in thread | raw e-mail
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219399 --- Comment #87 from Don Lewis <truckman@FreeBSD.org> --- This variant of the Ryzen segv test pins each thread to a randomly chosen CPU. Top in thread display mode shows that the individual threads are pinned to the reported CPUs. I ran it overnight with a loop count parameter of 10000000 and observed no errors. --- ryzen_segv_test.c.orig 2017-07-19 17:26:47.686991000 -0700 +++ ryzen_segv_test2.c 2017-07-19 22:05:45.162536000 -0700 @@ -69,6 +69,8 @@ #include <sys/mman.h> #include <sched.h> #include <sys/types.h> +#include <sys/cpuset.h> +#include <pthread_np.h> #include <unistd.h> #endif @@ -332,8 +334,8 @@ pthread_t t1, t2, t3; #ifdef _MSC_VER #else - cpu_set_t cpuset; - int cpu; + cpuset_t cpuset; + int cpu1, cpu2, cpu3; #endif pid_t pid = getpid(); @@ -362,11 +364,20 @@ #ifdef _MSC_VER #else - cpu = random() % n_cpus; + cpu1 = random() % n_cpus; + cpu2 = random() % n_cpus; + cpu3 = random() % n_cpus; CPU_ZERO(&cpuset); - CPU_SET(cpu, &cpuset); - sched_setaffinity(pid, sizeof(cpu_set_t), &cpuset); - fprintf(stderr, "PID:%d CPU:%d\n", (int)pid, cpu); + CPU_SET(cpu1, &cpuset); + pthread_setaffinity_np(t1, sizeof(cpuset_t), &cpuset); + CPU_ZERO(&cpuset); + CPU_SET(cpu2, &cpuset); + pthread_setaffinity_np(t2, sizeof(cpuset_t), &cpuset); + CPU_ZERO(&cpuset); + CPU_SET(cpu3, &cpuset); + pthread_setaffinity_np(t3, sizeof(cpuset_t), &cpuset); + /* cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, pid, sizeof(cpuset_t), &cpuset); */ + fprintf(stderr, "PID:%d CPU1:%d, CPU2:%d CPU3:%d\n", (int)pid, cpu1, cpu2, cpu3); #endif pthread_join(t1, NULL); -- You are receiving this mail because: You are the assignee for the bug.help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-219399-8-0yEvqzuPa8>
