Matthew Fornero wrote:
> Hello,
>
> I have an application on x86 that uses an external event (either an
> interrupt or a DMA write to a specific memory location) to trigger code
> execution, and I believe the local timer interrupt is contributing a
> significant amount of jitter. This is a bit of a unique case where the only
> code that should be executing on that core is triggered by the event, so
> there is no need for anything timer based.
>
> I'm using a dual core processor with a quiet system, and have placed all of
> the "moveable" interrupts on CPU 0 (0-NR_IRQs using ipipe_set_irq_affinity).
> Looking at /proc/xenomai/irq and /proc/interrupts shows only the local timer
> interrupt increment on CPU 1. When using the DMA write to trigger execution,
> placing "sti"/"cli" around the polling routine improves the jitter
> substantially.
>
> Based on the above, is there some way to do one of the following:
>
> 1). Make a user space task higher priority than the timer interrupt
>
> or
>
> 2). A proper way to disable the local timer (vs. disabling all interrupts)
> on specific cores, as these cores would only need to run event based
> routines.
You can disable Xenomai timer interrupt by calling xnpod_stop_timer in
kernel-space. However, what you see in /proc/interrupt is not Xenomai
timer it is Linux', and it causes a bit of jitter (the time for the
I-pipe to mask, ack and return from interrupt). Disabling it would
require butchery in Linux code, but maybe simply masking the timer
interrupt could work.
--
Gilles.
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help