I wonder if there is any PREEMPTION configuration to enable, or specific way to run an application to get more precise real-time?
См. далее:
http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Latency-Test
который ссылается на это:
https://forum.linuxcnc.org/18-computer/25927-reducing-latency-on-multicore-pc-s-success?limitstart=0
(со страницы выше:)
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)
Возможно, вам придется адаптировать сценарий для Système D, однако...
Быстро проверить :Вы также можете повысить приоритет с помощью
nice -n
, где— желаемый приоритет.
Also, how could I check that the process is running real-time?
См. этот вопрос:Планирование процессов в реальном времени в Linux