Reply To: The well Source…

Forum Digital source The well Source… Reply To: The well Source…

#1867
multiblitz
Participant

    Good question.

    Currently my setup is quiet simple:

    – one cpu for housekeeping…timers…ticks…apps…IRQs in general

    – one cpu for Ethernet IRQs or cifs

    – one for USB-Irqs

    – One for MPD.

     

    Now, with full dynamic tickless on…if MPD is not acive there is NO OS-NOISE at all on that CPU. Which is what we expect. No timer ticks, no Irqs…complete silence.

    With MPD on, we have quiet a bit noise. Without FIFO/RT-Prio for MPD this goes up by 30% in OSnoise. With flac instead of Wave this goes up by factor 2-3. With a sample rate conversion this goes up by facor 20-30x !!! Equally 44khz recordings create a lot less OS-noise than 192khz recordings…

    This is not what I expected. As a full dynamic tickless mode should see MPD as a thread/ one task and let it run uninterrupted without any OS noise basically. This is by the way the dream of any real-time-fanboy: My app is running uninterrupted on its own core, so nothing reduces latency at all…so in the end both path would come together again.

    But this is what happens: MPD creates 4-5 individual threads: MPD, RTIO, flac, etcetc…have a look with HTOP and enable custom names and unhide user threads. So we break the rules of tickless it seems.

    I will experiment with an Odorid XU4 with eight cores and see if I give one CPU with four cores to MPD and separate each MPD-thread…what happens than soundwise. ON the other CPU we let Housekeeping and Ethernet and USB run isolated from each other.

    Maybe I find as well an app which truely runs with one thread only instead of MPD to get real dynamic tickless support, so we have real uninterrupted PCM-Stream handling…but my suspicion is that a MusikPLayer need to be programmed with full tickless in mind to make that happen and that our level of influence is not enough by isolating userspace-threads alone.

     

    Now, seleting the right SoC/CPU is the main topic behind your question I guess…

     

    I think we have to weight in other factors there. The quality of OS-clocksources being an important one. x86 has tsc and hpet. arm has something like archtimer I believe…I yet have to compare x86 vs arm with the exact same Kernel and customizations…this is next on my list.