From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: Matthew Fornero <matthew.fornero@domain.hid>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-help] Masking / Disabling the local timer interrupt
Date: Thu, 06 Nov 2008 14:51:14 +0100 [thread overview]
Message-ID: <4912F652.3020608@domain.hid> (raw)
In-Reply-To: <843a47610811051556y3b73ae28gebcdf0eeb2a8b800@domain.hid>
Matthew Fornero wrote:
> On Tue, Nov 4, 2008 at 2:21 PM, Gilles Chanteperdrix
> <gilles.chanteperdrix@xenomai.org> wrote:
>> 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.
>
> I could not find any reference to the function xnpod_stop_timer in the
> xenomai code (searched through the cross-reference).
> I tried using xnarch_stop_timer(cpu), but this seems to disable the
> timers across all CPUs, rather than just the one passed.
> What I'd really like to do is simply mask the interrupt temporarily
> while my critical section is executing (the DMA polling routine)-- is
> there any way to do this? I can go into the local APIC and change the
> mask bits, but using some sort of API seems like it'd be cleaner.
xnpod_stop_timer no longer exists ! The function to disable irqs is
rt_intr_disable if you use the native skin.
--
Gilles.
next prev parent reply other threads:[~2008-11-06 13:51 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-04 13:27 [Xenomai-help] Masking / Disabling the local timer interrupt Matthew Fornero
2008-11-04 19:21 ` Gilles Chanteperdrix
[not found] ` <843a47610811051556y3b73ae28gebcdf0eeb2a8b800@domain.hid>
2008-11-06 13:51 ` Gilles Chanteperdrix [this message]
2008-11-06 14:28 ` Matthew Fornero
2008-11-06 14:38 ` Gilles Chanteperdrix
[not found] ` <843a47610811060627w47a8ed32ma6881328a4713162@domain.hid>
2008-11-06 14:35 ` Gilles Chanteperdrix
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4912F652.3020608@domain.hid \
--to=gilles.chanteperdrix@xenomai.org \
--cc=matthew.fornero@domain.hid \
--cc=xenomai@xenomai.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.