All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@domain.hid>
To: Jeff Koftinoff <jeffk@domain.hid>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-help] rt_task_set_periodic and different time base
Date: Mon, 14 May 2007 23:42:07 +0200	[thread overview]
Message-ID: <4648D7AF.7080409@domain.hid> (raw)
In-Reply-To: <4648CA4E.70904@domain.hid>

[-- Attachment #1: Type: text/plain, Size: 2544 bytes --]

Jeff Koftinoff wrote:
> Jan Kiszka wrote:
>>
>> There exists some vague ideas to provide an infrastructure with Xenomai
>> that allows to smoothly synchronise its local clock on whatever external
>> (jittery) source, but note that "vague" above.
>>
>> Moreover, I don't think you actually want this for your scenario. You
>> may rather look for a hard sync on each audio tick, no?
>>
>>   
> correct, a hard sync on each audio tick is what I want. 166 +- 20
> Microseconds.
> 
>>> My original thought was to use rt_intr_wait() in my user mode program
>>> and do the scheduling of sub-tasks myself.
>>>     
>>
>> Sounds what you need (or directly derive an RTDM device with appropriate
>> interface for your audio-hw :)).
>>
>>   
> 90% of my CPU time needs to be spent processing audio and the control
> for this audio, at the highest priority above linux, and running in C++
> in userspace (really!)... There is no 'audio driver' involved, really,
> as the whole point of the hardware is to process live audio in real time
> from audio in to audio out with very low latency in usermode.

I see.

>>> But it would be ideal if rt_task_set_periodic() could just use the
>>> appropriate time source itself.
>>>     
>>
>> Why?
>>
>>   
> Because I have many layers of audio processing procedures that need to
> be scheduled at different periodic intervals, with different priorities.
> lower level audio processing procedures run every 166 microseconds and
> have highest priority, and interrupt higher level lower rate (5.3
> ms,10.66 ms and 32 ms) control processing procedures.

So they are all multiples of the base period? Why not let the high-rate
tasks wake the low-rate ones when time has come, e.g. via semaphores?

> I have non-xenomai usermode code right now that can use a recursive
> signal handler to manually schedule these 'layers' of processing tasks. 
> But then I'm just duplicating the rt_task_set_periodic() capability that
> is already there in xenomai.
> 
> I just want the Xenomai task scheduler to be controlled directly by the
> audio tick interrupt.... Is that a problem to enable?

You may hack this into the code, but I would rather suggest to design
this at application level in order to remain portable across Xenomai
releases. Only if you find relevant performance deficits (but I do not
see any yet), you may consider special solutions (in that case, please
come back with the issue, maybe we can find a generic way that helps
others as well).

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 249 bytes --]

  reply	other threads:[~2007-05-14 21:42 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-14 20:03 [Xenomai-help] rt_task_set_periodic and different time base Jeff Koftinoff
2007-05-14 20:11 ` Jan Kiszka
2007-05-14 20:45   ` Jeff Koftinoff
2007-05-14 21:42     ` Jan Kiszka [this message]
2007-05-15  0:33       ` Jeff Koftinoff

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=4648D7AF.7080409@domain.hid \
    --to=jan.kiszka@domain.hid \
    --cc=jeffk@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.