I wonder if there is any PREEMPTION configuration to enable, or specific way to run an application to get more precise real-time?
Veja o seguinte:
links para isso:
(da página acima:)
Linux related changes:
- edit /etc/default/grub and add the kernel options: "isolcpus=1 acpi_irq_nobalance noirqbalance" (call update-grub afterwards)
- make sure that the software "irqbalance" is NOT installed, remove if it is there (Ubuntu software center -> installed software -> search for irqbalance -> remove)
- add the upstart script "irq-affinity.conf" to /etc/init (see attachments, it will move the irq-handling to the first core)
- add the sh scripts set-irq-affinity and watchirqs to /usr/local/sbin (first allows to set the affinity mask manually, second opens a console window that shows live how the irqs are scheduled to the different cores -> all numeric irqs but 0 should be handled by cpu0)
Você pode ter que adaptar o roteiro para o Système D, embora ...
Uma coisa rápida para testar:
Você também pode aumentar a prioridade com nice -n <x>
, em que <x>
é a prioridade desejada.
Also, how could I check that the process is running real-time?
Veja esta pergunta: Processamento de processos em tempo real no Linux
Espero que ajude; -)