Discussione

Come disabilitare l'hyper-threading mediante uno script bash su Ubuntu

Come disabilitare l'hyper-threading mediante uno script bash su Ubuntu

Sto ottimizzando qjackctl per il mio live setup e grazie al video tutorial di Lorenzo Gabriele del canale Youtube "Ardour Italia" ( https://www.cutt.ly/9mxk10O ) sono riuscito a ottene grandi miglioramenti! Uno dei tanti suggerimenti del video è creare uno script bash che possa disattivare l'hyper threading, caratteristica utile per lavori che non richiedono basse latenze, ma per quanto riguarda suonare dal vivo mmm... A beneficio di tutti, condivido qui lo script, così se qualcuno avesse bisogno non deve reinventare la ruota da capo. I programmatori esperti impallidiranno probabilmente per alcuni strafalcioni che posso aver scritto ma non ho dimestichezza con gli script bash, per cui siate clementi. _______________________________________ Ecco lo script bash... _______________________________________ #!/bin/bash # richiede l'autenticazione come amministratore per poter intervenire sulle cpu echo "$(whoami)" [ "$UID" -eq 0 ] || exec sudo "$0" "$@" echo " " # controlla se l'hyper threading è attivo e informa l'utente daleggere=$( cat /sys/devices/system/cpu/cpu1/online ) if [ $daleggere = 0 ] then echo "Hyper Threading spento " else echo "Hyper Threading acceso " fi # chiede all'utente un input per scegliere se attivare o disattivare le cpu echo Per disattivare l\'Hyper Threading digita 0, altrimenti 1 read scelta if [ $scelta = 0 ] then echo Disattivo le cpu virtuali... # decommentare tra le righe seguenti quelle che si riferiscono alle cpu sulle quali intervenire # echo 0 > /sys/devices/system/cpu/cpu1/online # echo 0 > /sys/devices/system/cpu/cpu3/online # echo 0 > /sys/devices/system/cpu/cpu5/online # echo 0 > /sys/devices/system/cpu/cpu7/online # echo 0 > /sys/devices/system/cpu/cpu9/online # echo 0 > /sys/devices/system/cpu/cpu11/online # echo 0 > /sys/devices/system/cpu/cpu13/online # echo 0 > /sys/devices/system/cpu/cpu15/online echo Ok, ora sono spente. else echo Attivo le cpu virtuali... # decommentare tra le righe seguenti quelle che si riferiscono alle cpu sulle quali intervenire # echo 1 > /sys/devices/system/cpu/cpu1/online # echo 1 > /sys/devices/system/cpu/cpu3/online # echo 1 > /sys/devices/system/cpu/cpu5/online # echo 1 > /sys/devices/system/cpu/cpu7/online # echo 1 > /sys/devices/system/cpu/cpu9/online # echo 1 > /sys/devices/system/cpu/cpu11/online # echo 1 > /sys/devices/system/cpu/cpu13/online # echo 1 > /sys/devices/system/cpu/cpu15/online echo Ok, ora sono accese. fi sleep 1s clear sleep 1s bash disattivazione-cpu.sh

 

Aggiornamento! Ho seguito anche alcune delle indicazioni fornite qui: https://wiki.linuxaudio.org/wiki/system_configuration#solve_irq_conflict_by_unbinding_devices Devo dire che cambiare la priorità RTIRQ delle periferiche ha migliorato di molto la stabilità del sistema per la gestione dell'audio in tempo reale. Per essere precisi, ho spostato l'usb in cima alle priorità, quindi da qualcosa del genere RTIRQ_NAME_LIST="firewire usb" a qualcosa tipo RTIRQ_NAME_LIST="usb firewire " Inoltre ho modificato GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" aggiungendo "threadirq" È tutto un lavoro di ottimizzazione estrema, però mi sta dando soddisfazioni: la possiblità di usare computer e scheda audio al posto di un mixer offre la possibilità di tirar fuori un sound eccezionale! Per poter adoperare computer e scheda audio sul palco durante i concerti è fondamentale ottimizzare il software affinché garantisca la massima stabilità durante il processamento del segnale.

 
Immagine di Mattia Moraldi

In questi ultimi giorni ne sto imparando una dietro l'altra! Finalmente ho capito come avviare il mio script tramite RaySession manager. Molto semplicemente, basta aggiungere l'applicazione Konsole (il terminale per chi ha KDE) e aggiungere il seguente argomento: -e /percorso/dello/script.sh E voilà! Aprendo la sessione di lavoro, tra le varie applicazioni viene avviato Konsole e il mio script per gestire l'hyper threading!