Con Debian 9 il mio Ryzen R7 1700 aveva qualche piccolo problemino.
Sporadicamente, mentre il pc era in idle, si freezava obbligando al reset, e sporadicamente avevo segfault durante le compilazioni con make -j16
Niente di catastrofico, capitava circa 1 volta a settimana e non andava perso nessun lavoro, ovviamente nel caso di segfault bisognava ricompilare.
Dopo ricerche, con visioni catastofistiche tipo “i Ryzen costruiti prima della settimana xx del 2017 sono fallati e da rendere in rma”, ho trovato alcune indicazioni utili:
Since I added CONFIG_RCU_NOCB_CPU and CONFIG_RCU_NOCB_CPU_ALL and Norandmaps in my kernel of vanilla 4.11.x, I have never seen a freeze …
Thanks for the tip !
effettivamente aggiungendo
CONFIG_RCU_NOCB_CPU=y CONFIG_RCU_NOCB_CPU_ALL=y norandmaps
ai parametri di boot del kernel i problemi sparivano.
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.9.0-3-amd64 root=UUID=11771692-d7fa-4854-ad67-badefa904511 ro vga=0x305 ipv6.disable=1 CONFIG_RCU_NOCB_CPU=y CONFIG_RCU_NOCB_CPU_ALL=y norandmaps
Compilati poi vari kernel,
con
CONFIG_RCU_NOCB_CPU=y
CONFIG_RCU_NOCB_CPU_ALL=y
ora ho il 4.12.14
[ 0.000000] Linux version 4.12.14-mc (root@dhcppc1) (gcc version 6.3.0 20170516 (Debian 6.3.0-18) ) #1 SMP Thu Sep 21 15:24:35 CEST 2017
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.12.14-mc root=UUID=11771692-d7fa-4854-ad67-badefa904511 ro vga=0x305 ipv6.disable=1 norandmaps quiet
verifica:
mc@dhcppc1:~$ sudo dmesg | grep RCU
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=16.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=16
[ 0.000000] Offload RCU callbacks from all CPUs
[ 0.000000] Offload RCU callbacks from CPUs: 0-15.
tutto funziona da mesi senza intoppi.
Per chi ne avesse bisogno:
non è necessario ricompilare il kernel se non ne siete capaci, basta aggiungere
CONFIG_RCU_NOCB_CPU=y CONFIG_RCU_NOCB_CPU_ALL=y norandmaps
ai parametri di boot del kernel
CONFIG_RCU_NOCB_CPU_ALL=y probabilmente non ha effetto ma il resto si:
[ 0.000000] Linux version 4.9.0-3-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 (Debian 6.3.0-18) ) #1 SMP Debian 4.9.30-2+deb9u3 (2017-08-06)
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.9.0-3-amd64 root=UUID=11771692-d7fa-4854-ad67-badefa904511 ro vga=0x305 ipv6.disable=1 CONFIG_RCU_NOCB_CPU=y CONFIG_RCU_NOCB_CPU_ALL=y norandmaps
sudo dmesg | grep RCU
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] Build-time adjustment of leaf fanout to 64.
[ 0.000000] RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=16.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=16
manca solo
[ 0.000000] Offload RCU callbacks from all CPUs
[ 0.000000] Offload RCU callbacks from CPUs: 0-15.
rispetto al kernel compilato, ma fa comunque il suo lavoro.
Aggiornamento:
dopo 3 settimane di test norandmaps non è necessario.
Rimosso e tutto funziona.