Skip site navigation (1)Skip section navigation (2)
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>