thanks for all your input, I’ll try and summarize here.

> You're running Mint :-)  Lots of background bells and whistles there, lots of 
> things which will crop up and interfere, things you cannot disable or turn 
> off with absolute certainty.  If you want smooth power, you'll have to choose 
> more carefully.  My current SOP in more detail here:
> 
> http://lsn.ponderworthy.com/doku.php/choosing_a_linux_platform_for_live_synth 
> <http://lsn.ponderworthy.com/doku.php/choosing_a_linux_platform_for_live_synth>
> 
> 
> 
> -- 
> Jonathan E. Brickman   j...@ponderworthy.com <mailto:j...@ponderworthy.com>   
> (785)233-9977
> Hear us at http://ponderworthy.com <http://ponderworthy.com/> -- CDs and MP3 
> now available! <http://ponderworthy.com/ad-astra/ad-astra.html>
> Music of compassion; fire, and life!!!


First of all, booting into console mode, rather than running the full blown 
desktop seemed to eliminate most of the problems, although it’s still not quite 
a stable as i’d like.
Also i don’t quite understand how all of that could interfere with my RT-thread.
This was going to try and install a more minimal system anyway, and don’t need 
a graphical environment for this, but during developments it’s kind of nice to 
have.

I still would like to see how far i can take this, and was really hoping i can 
continuously use 80-90% of all cpu cores without dropouts…
Is that realistic with a lowlatency kernel? 


> Do you lock all memory used by your RT threads ? 
> 
> If you don't and the system is configured for high swappiness
> [1] this sort of thing could happen. 
> 
> I'm routinely running big real-time convolution matrices without
> problems, so it's certainly possible. 
> 
> 
> [1] <https://en.wikipedia.org/wiki/Swappiness 
> <https://en.wikipedia.org/wiki/Swappiness>>
> 
> -- 
> FA

I am not currently locking memory. I thought a had plenty of ram, as not to 
cause any swapping, but i guess its good practice to wire memory, so i will 
give it a try.

> 
> Bad kernel driver? WIFI drivers are known bad for things like this. An 
> interupt driver can block if it is designed badly. I found on one machine I 
> had to unload the the kernel module for my wifi as it actually created more 
> problems when I turned the power off to the tx than when it was on. (it seems 
> to me on my wifi, when it was turned on I got xruns every 5 seconds, but with 
> it turned off it was every half second or so... sounds very close to 0.6, 
> unloading the kernel module fixed it)
> 
> Cron should also be turned off, but that is probably not the problem here. 
> Cron runs super "nice" but there seem to be some things it does like packge 
> update that can cause problems too. I turn off cron while recording.
> 
> --
> Len Ovens

I don’t have a wireless on my machine, nor an nvidia card. just intel builtin 
graphics. This where my linux knowledge falls short, but If i don’t have that 
hardware, can I assume no drivers for it are loaded?

> 
> AFAIK, the important things are.
> 
> 1. Use a properly configured realtime patched kernel.
> 

lowlatency-kernel is not going to cut it?

I wasn’t really able to find to much info on the difference between the two, 
other than than the rt-kernel is a “step up” and hard realtime vs soft.
But nothing on how this is technically achieved


> 2. Set a high priority of the soundcard interrupt, something like 97 is
> a good value.  (If using a USB soundcard, set the priority of the
> interrupt servicing the USB hub instead).
> 

did that.
> 3. Run Jack with realtime and memlocking enabled and at a priority of
> 80.
> 
I’m not running jack but rather using alsa directly/

> 4. Make sure that you don't have any hardware/drivers that play havoc
> with your kernel scheduling.  some WIFI adapters, NVIDIA, etc comes to
> mind.
> 
> 5. Make sure that the system isn't suffering from SMI/NMIs which
> preempt the kernel and can take a long time to execute.  This can be
> done with hwlatdetect script in the rt-tests package.
> 
> 6. Use cyclictest from rt-tests to confirm that there are no latency
> spikes in how the kernel schedules threads.
> 
> Possibly hyperthreading, cpu power management, etc could cause
> problems, and I don't have experience with all hardware out there, but
> IME on modern Intel hardware this isn't a problem.
> 
I did actually find that hyperthreading had an impact, turing it of made every 
thing much more predictable.

> JACK2 also has a very nice profiling tool that can give a good idea
> about what is going on with the soundcard interrupt, clients, etc.
> 
> -- 
> 
>   Joakim


> Keep an eye on the interrupts while its all running, particularly
> Non-maskable interrupts. Try to correlate them with the 0.6 sec
> of the glitches if possible;
> 
> watch -n 0.1 cat /proc/interrupts
>  
> I've written up some of the checks I generally do, perhaps browse
> that to see if there's anything there that you could check?
> http://openavproductions.com/real-time-latency-tuning/ 
> <http://openavproductions.com/real-time-latency-tuning/>
> 
> Thats all I can think of at the moment, -Harry
> 

Here’s the output of  cat /proc/interrupts:


           CPU0       CPU1       CPU2       CPU3
   0:         57          0          0          0   IO-APIC-edge      timer
   1:          3          0          0          0   IO-APIC-edge      i8042
   7:         44          0          0          0   IO-APIC-edge
   8:          1          0          0          0   IO-APIC-edge      rtc0
   9:          3          0          0          0   IO-APIC-fasteoi   acpi
  12:          4          0          0          0   IO-APIC-edge      i8042
  16:          0          0          0          0   IO-APIC   16-fasteoi   
madifx
 121:       7074          0          0        341   PCI-MSI-edge      xhci_hcd
 122:      13001      25946          0        342   PCI-MSI-edge      
0000:00:17.0
 123:       3409          0          0          0   PCI-MSI-edge      eth0
 124:     171029          0          0          0   PCI-MSI-edge      i915_bpo
 125:       4805          0          0          0   PCI-MSI-edge      
snd_hda_intel
 NMI:         17         12         13         14   Non-maskable interrupts
 LOC:     544121     436328     444080     462821   Local timer interrupts
 SPU:          0          0          0          0   Spurious interrupts
 PMI:         17         12         13         14   Performance monitoring 
interrupts
 IWI:          0          0          0          0   IRQ work interrupts
 RTR:          3          0          0          0   APIC ICR read retries
 RES:      13051      11975      11216       8004   Rescheduling interrupts
 CAL:        613        547        560        526   Function call interrupts
 TLB:        640        767        676        535   TLB shootdowns
 TRM:          0          0          0          0   Thermal event interrupts
 THR:          0          0          0          0   Threshold APIC interrupts
 MCE:          0          0          0          0   Machine check exceptions
 MCP:         31         31         31         31   Machine check polls
 HYP:          0          0          0          0   Hypervisor callback 
interrupts
 ERR:         44
 MIS:          0

the local timer interrupts are getting fired all the time, but i guess they 
should.
123 eth0 is also updated rather often. But the one thats closed to 0.6s seems 
to be:

 122:      13001      26147          0        342   PCI-MSI-edge      
0000:00:17.0

But is there anything a can do about that?



cheers,
Fokke



_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev

Reply via email to