Date: Wed, 13 Jun 2018 16:52:56 +0200 From: Gary Jennejohn <gljennjohn@gmail.com> To: Konstantin Belousov <kostikbel@gmail.com> Cc: Johannes Lundberg <johalun0@gmail.com>, amd64@freebsd.org, current@freebsd.org Subject: Re: Ryzen public erratas Message-ID: <20180613165256.2b0dac0d@ernst.home> In-Reply-To: <20180613114625.GQ2493@kib.kiev.ua> References: <20180613103535.GP2493@kib.kiev.ua> <86602neyil.fsf@gmail.com> <20180613114625.GQ2493@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 13 Jun 2018 14:46:25 +0300 Konstantin Belousov <kostikbel@gmail.com> wrote: > On Wed, Jun 13, 2018 at 12:06:42PM +0100, Johannes Lundberg wrote: > > > > Konstantin Belousov writes: > > > > > Today I noted that AMD published the public errata document for Ryzens, > > > https://developer.amd.com/wp-content/resources/55449_1.12.pdf > > > > > > Some of the issues listed there looks quite relevant to the potential > > > hangs that some people still experience with the machines. I wrote > > > a script which should apply the recommended workarounds to the erratas > > > that I find interesting. > > > > > > To run it, kldload cpuctl, then apply the latest firmware update to your > > > CPU, then run the following shell script. Comments indicate the errata > > > number for the workarounds. > > > > > > Please report the results. If the script helps, I will code the kernel > > > change to apply the workarounds. > > > > > > #!/bin/sh > > > > > > # Enable workarounds for erratas listed in > > > # https://developer.amd.com/wp-content/resources/55449_1.12.pdf > > > > > > # 1057, 1109 > > > sysctl machdep.idle_mwait=0 > > > sysctl machdep.idle=hlt > > > > > > for x in /dev/cpuctl*; do > > > # 1021 > > > cpucontrol -m '0xc0011029|=0x2000' $x > > > # 1033 > > > cpucontrol -m '0xc0011020|=0x10' $x > > > # 1049 > > > cpucontrol -m '0xc0011028|=0x10' $x > > > # 1095 > > > cpucontrol -m '0xc0011020|=0x200000000000000' $x > > > done > > > > > > > Hi > > > > Thanks for the fix! I'm trying it now on my Ryzen 3 2200G which does > > experience some random occasional resets. > > > > About updating to latest firmware, is this something that's done from BIOS or > > from FreeBSD? If the latter, how? > From FreeBSD, install sysutils/devcpu-data then do > service microcode_update start > and of course, you must flash latest BIOS. > > The microcode_update must be applied before running this script. > I added before and after outputs to my version of the script and saw that my BIOS is setting all the relevant bits at start up. So, a BIOS update might help. -- Gary Jennejohn
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180613165256.2b0dac0d>