Your advise to overcome "CONFIG_NO_HZ_FULL is not set"

I have about twelve different SoCs on which I installed DietPi to see which one sounds best…building a no compromise streamer for a DAC (USB/I2S)…all on battery PSU.

As noiseless/jitterfree as possible is the main design target in audio playback.

So, the CONFIG_NO_HZ_FULL kernel option is VERY interesting…tickless execution…but in none of the distros of Dietpi activated (even though that they have different original sources).

I understand:

  • that Dietpi only works with pre-defined images, not building own Kernels
  • its difficult to get a vamilla debian / Linux system to work on those small SoC as they are very specific, so I am not sure if that is something I could do myself, even though I am in computers for 40 years now (but Linux is new).

I am seeking for your advise to find a path to get CONFIG_NO_HZ_FULL enabled, whatever the distro or hardware needs to be (ARM/x86-64bit). My questions:

  • Is my understanding described above correct ?
  • IS there a path to rebuild the DietPi-Kernel(its always bullseye) similar to what Odroid described here odroid-xu4:software:building_kernel [ODROID Wiki]
  • What would be the easiest path to either find a distro which has this enabled ?
  • If in any case I have to build my own: I guess there are a lot of differences in terms of supported hardware/drivers/ease of setting stuff up for beginners. Any advise on which one to choose (when hardware is not the defining factor, could be as well x86)?

The target is to build an experimental setup to see how much of a difference (if at all) this will make CONFIG_NO_HZ_FULL from an audio/listening experience when all the isolated cores with there individual processes/interrupts can run tickless.

jitter-/noiseless …less EMI/EMF…precise clocks…fewest interrupts etcetc …makes the difference here, not latency, not performance. even on a beaglebone the CPU-utilization is at 3-4% when playing back PCM and Memory around 80MB…

you would need to compile your own kernel if the function is not present in mainline kernel version.

I understand that…but you guys have much more experience to generate a kernel for a SoC, so I was hoping for some guidance e.g. “Use your Dieppi instalation to re-compile the kernel, so that the dirvers / packages can be re-used…” instead of starting vanilla…maybe you know how to tackle this…and it is obvisous to you how to do it…i am in the very beginning…

We don’t have that much experience in creating custom kernel as we never did that.

I see. I will tackle this than on a x86 mini pc to have a broader basis of starting points and tutorials…if tickless mode makes a difference in sound (as even the governor model did …userspace with a fixed low freq rocks !), I will later than see how to port it to SoC…right now I am writing scripts to toggle settings for isolcpus, app and irq affinities within seconds and in a week or two listening and comparing starts…