Ho tolto un po di roba che non mi serve e ora 1064 liberi la musica peró la prelevo da hd usb collegato direttamente ma ho alzato i buffer alsa di mpd ma non ricordo quanto
Printable View
Il consiglio é anche di sperimentare un po con isolcpus=... , irq-affinity e process-tools
isolcpus= isolare una cpu da dedicare poi al player
irq-affinity spostare gli irq di sistema (rete e usb) su core diffrenti
process-tools per prioritá affinity e nice delle applicazioni
Aggiornate le immagini Systemd x86_64
aggiornato l'intero sistema
rimosso il pf-kernel e aggiunto gentoo-sources v. 4.20.6 (con flag experimental, che applica in automatico le stesse patch del pf)
per chi volesse attivare il BFQ scheduler, deve proseguire in questo modo (forse in futoro predispongo un comando).
Io personalmente non lo consiglio, ho visto vari Benchmark in giro e non é superiore al cfq o ad altri, anzi in molte situazioni é molto peggio....
ma comunque:
inserirci dentro questo:codice:nano /etc/udev/rules.d/60-scheduler.rules
codice:# set deadline scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", TEST!="queue/rotational", ATTR{queue/scheduler}="deadline"
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="bfq"
# set cfq scheduler for rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="cfq"
codice:mount /boot
editare il file di configurazione di grub
e aggiungere al GRUB_CMDLINE_LINUX la chiave scsi_mod.use_blk_mq=1tcodice:nano /etc/default/grub
un esempio:
codice:GRUB_DISTRIBUTOR="GentooPlayer"
GRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
GRUB_DISABLE_SUBMENU="y"
#GRUB_CMDLINE_LINUX="threadirqs intel_idle.max_cstate=0 isolcpus=3 vsyscall=none elevator=noop"
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash threadirqs transparent_hugepage=never noapic clocksource=hpet"
GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd threadirqs intel_idle.max_cstate=0 vsyscall=none scsi_mod.use_blk_mq=1"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash threadirqs transparent_hugepage=never clocksource=hpet "
GRUB_BACKGROUND="/boot/grub/gp2.png"
GRUB_DISABLE_RECOVERY="true"
dare i comandi
codice:grub-mkconfig -o /boot/grub/grub.cfg
codice:udevadm control --reload
codice:udevadm trigger
riavviare
Aggiornamenti:
- x86_64: Aggiornato intero sistema, rimosso il pf-kernel e aggiunto il gentoo-sources 4.20.y
- Rpi: Aggiornato intero sistema, aggiunto il kernel 4.20.y (no RT), rimangono il 4.14.y e il 4.14.y RT compatibili con i driver I-Sabre-K2M
- bbb: Aggiornato intero sistema, aggiornato i kernel 4.20.y e 4.19.y RT
- UsbBridge: Aggiornato il sistema, ricompilato kernel con l'ultima patch aggiunta
Su piattaforma x86_64 ho aggiunto all'overlay Qobuz player e Jriver.
si possono installare con
codice:gp-update
codice:emerge --ask jriver-bin
codice:emerge --ask qobuz-desktop-player-bin
@dankan73
hai la casella dei messaggi piena....
Tips su affinity, process-tools, isolcpus e rt prioritá
consigliato.
faccio l'esempio del mio player con 4 core, quindi le cpu in questione sono la 0,1,2,3.
come prima cosa mi edito il file di configurazione di grub
e modifico la riga GRUB_CMDLINE_LINUX_DEFAULT=codice:nano /etc/default/grub
ecco il mio
poicodice:GRUB_DISTRIBUTOR="GentooPlayer"
GRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
GRUB_DISABLE_SUBMENU="y"
#GRUB_CMDLINE_LINUX="threadirqs intel_idle.max_cstate=0 isolcpus=3 vsyscall=none elevator=noop"
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash threadirqs transparent_hugepage=never noapic clocksource=hpet"
GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd threadirqs intel_idle.max_cstate=0 vsyscall=none"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash threadirqs transparent_hugepage=never isolcpus=1,2,3 nohz_full=1,2,3 tsc=reliable mce=ignore_ce nosoftlockup audit=0 idle=poll"
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash threadirqs transparent_hugepage=never clocksource=hpet"
GRUB_BACKGROUND="/boot/grub/gp2.png"
GRUB_DISABLE_RECOVERY="true"
codice:mount /boot
rebootcodice:grub-mkconfig -o /boot/grub/grub.cfg
Praticamente isolo la cpu1,2 e 3. In modo che al riavvio ho tutti i processi sulla cpu0.
Se si deve compilare qualcosa o aggiornare il sistema conviene tornare alla riga precedente, per questo io ho due righe una commentata. commento uno e scommento l'altra all'occorrenza. Altrimenti il sistema in quel caso ricompila con un core solo.
a questo punto do l'affinitá degli IRQ della usb alla cpu1 e della rete alla cpu2.
Con il comando irq-affinity o dal menu gp-menu>System>CPU and Process-Setting>Move the system IRQ (usb, rete, etc.) to a specific CPU
https://up.nexthardware.com/user_ima...ection_024.png
nel mio caso gli IRQ che mi interessano gia sono settati,il 20 (usb) sulla CPU1, e il 16 e il 19 sulla CPU2.
spostati gli IRQ che ci interassano, aggiungo all'avvio di sistema la modifica gp-menu>System>CPU and Process-Setting>Make irq-affinity changes permanent even at reboot
Dopodiché passo alle applicazioni player che sposto sulla CPU3 con process-tools o da menu gp-menu>System>CPU and Process-Setting>System>CPU and Process-Setting
si apre un file da editare, ecco un esempio:
Squeezelite con nice -10 sulla cpu3 e con prioritá RT Round Robin 85 e lo stesso per networkaudiod.codice:######### Squeezelite-R" #############
aname_save[8]='squeezelite-R2'
anice_save[8]=-10
aaffinity_save[8]='3'
aschedule_policy_save[8]='SCHED_RR'
aschedule_priority_save[8]='85'
######### LMS #######################
aname_save[9]='slimserver.pl'
anice_save[9]=0
aaffinity_save[9]='0-3'
aschedule_policy_save[9]='SCHED_OTHER'
aschedule_priority_save[9]='0'
########## networkaudiod NAD ##########
aname_save[10]='networkaudiod'
anice_save[10]=-10
aaffinity_save[10]='3'
aschedule_policy_save[10]='SCHED_RR'
aschedule_priority_save[10]='85'
########## LMS ##########
Per aggiungere all'avvio la modifica, gp-menu>System>CPU and Process-Setting>Make permanent changes
process-tools per funzionare ha bisogno che i player interessati siano messi all'avvio di sistema.
Ecco i risultati
https://up.nexthardware.com/user_ima...ection_025.png
tutto sulla cpu0 e squeezelite sulla 3
https://up.nexthardware.com/user_ima...ection_026.png
Alla fine mi configuro la prioritá degli irq di sistema (usb e rete) con il comando rtirqconf o da menu gp-menu>System>RT System>Opens the RTirq configuration wizard
e lo aggiungo all'avvio con gp-menu>System>RT System>Add RTirq on startup
https://up.nexthardware.com/user_ima...ection_027.png
ps: sono tutti processi che fanno il loro lavoro all'avvio di sistema, 1 volta sola, non sono processi cron che possono causare xrun in alcuni casi...