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/> References: <bug-219399-8@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D219399 --- Comment #87 from Don Lewis <truckman@FreeBSD.org> --- This variant of the Ryzen segv test pins each thread to a randomly chosen C= PU.=20 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 =3D getpid(); @@ -362,11 +364,20 @@ #ifdef _MSC_VER #else - cpu =3D random() % n_cpus; + cpu1 =3D random() % n_cpus; + cpu2 =3D random() % n_cpus; + cpu3 =3D 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); --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-219399-8-0yEvqzuPa8>