Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 03 Jul 2017 14:16:22 +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-DQ2CNnlfZd@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=219399

--- Comment #29 from Nils Beyer <nbe@renzel.net> ---
Hmm, are you probably a victim of the AMD Ryzen 20°C temperature offset:

   
https://www.reddit.com/r/Amd/comments/607xg2/why_do_the_x_ryzen_cpus_have_a_temperature_offset/

? So your real temperatures were aroung 5X°C? BTW: how do you measure the CPU
temperature under FreeBSD?


Regarding my script - you are correct; it's an endless buildworld and
buildkernel loop. Unfortunately, to catch the AMD Ryzen "bug", you need a TMPFS
mount. You can allow a user to mount TMPFS by executing following as root once:

    sysctl vfs.usermount=1

source: https://www.freebsd.org/doc/handbook/usb-disks.html


Here's the modified script that is able to run as user:
--------------------------------------------- SNIP
---------------------------------------------------
#!/bin/sh

OBJDIR="/tmp/ryzen_stress_test"

trap "exit 1" 1 2 3

cd /usr/src
umount ${OBJDIR}
mkdir ${OBJDIR}
mount -t tmpfs tmpfs ${OBJDIR} || exit 1

while [ 1 ]; do
        echo "`date` begin"
        BEG="`date +%s`"
        make -j20 buildworld buildkernel MAKEOBJDIRPREFIX=${OBJDIR}
>${OBJDIR}/${BEG}.log 2>&1
        ERR="$?"
        echo "`date` end - errorcode ${ERR}"
        [ "${ERR}" != "0" ] && cp ${OBJDIR}/${BEG}.log ~/.
        rm ${OBJDIR}/${BEG}.log
done
--------------------------------------------- SNIP
---------------------------------------------------

In this version the suspicious log files will be saved to your home dir. Just
save everything between the "SNIP"-lines to "ryzen_stress_test.sh" in your home
dir and then execute as user:

    /usr/bin/nohup sh ~/ryzen_stress_test.sh &

This spawns the stress test in the background; to kill it, execute as user:

    pkill -f ryzen_stress_test

then the remaining buildworld, buildkernel processes should die afterwards. As
user, execute:

    umount /tmp/ryzen_stress_test

in order to unmount and erase the TMPFS buildowlrd/buildkernel temporary
folder...

-- 
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-DQ2CNnlfZd>