Re: [情报] Ryzen被发现在Linux编译会出现 segfault

楼主: suzuke (suzuke)   2017-12-25 20:55:47
先说一下我的状况,我是buildroot随机会出错,
但是完全没有改任何设定继续编译却可以编译成功。
总之就是大量平行编译会随机出错...
使用 https://github.com/suaefar/ryzen-test/blob/master/kill-ryzen.sh
测试(No Ramdisk),果然会出现这样的错误(segmentation fault):
[KERN] Dec 21 22:19:39 Ryzen kernel: bash[7678]: segfault at 45 ip
0000000000701d40 sp 00007ffdcdb4c4e8 error 6
主机板也是Asus b350 plus, BIOS: 3401, 1700 / Ram: 16G DDR4
OS则是Linux Mint 18.2
尝试过换kenerl版本(4.9-4.11),加过cpu电压,关掉C-state,BIOS全默认
都一样会出现上面的错误。虽然关掉SMT之后就正常,可是我总不能一直关着SMT阿QQ
后来先尝试在linux里关掉ASLR (Address space layout randomization)
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
好像也没什么用...
本来已经打算要RMA了,刚好看到板友RMA回来的步进一样还是B1,
也有提到RCU设定(CONFIG_RCU_NOCB_CPU),就再尝试看看重新编译kernel(4.13.16)
主要就是 make menuconfig 里面
-> General setup
-> RCU subsystem
这一项要打开,然后在grub cmdline里面加入 rcu_nocbs=0-15
(因为我是8核1700,如果是6核心就是0-11 依此类推...)
看起来像是这样:
GRUB_CMDLINE_LINUX_DEFAULT="rcu_nocbs=0-15"
再跑一次kill-ryzen.sh测试:
https://gist.github.com/anonymous/216826c5141f99a8307ec0d1da76cea6
就没问题了。
总结:
BIOS: 3041
关掉C-State, ASLR
开启RCU
希望跟我有一样问题的人也可以不用RMA顺利解决。
作者: twosheep0603 (两羊)   2017-12-25 21:45:00
U:工作用的机器就是要稳
作者: pennymarkfox (潘尼老狐狸)   2017-12-26 12:39:00
推个

Links booklink

Contact Us: admin [ a t ] ucptt.com