Re: [LAD] Litmus RT kernel

From: Robin Gareus <robin@email-addr-hidden>
Date: Sat Mar 05 2011 - 18:08:37 EET

On 03/05/2011 04:26 PM, michael noble wrote:
> On Sat, Mar 5, 2011 at 10:25 PM, Robin Gareus <robin@email-addr-hidden> wrote:
>
>>
>
>> quick glance: I got the impression that it only addresses scheduling
>> policy (task partitioning) and not realtime task preemption. Also
>> software needs to be written dedicated for Litmus RT.
>>
>>
> Judging from the installation instructions, it seems preemption is there:

yes but not AFAICT not real-time preemtion.

Vanialla linux does offer some process preemption models (adopted from
earlier RT linux patches), but what makes Thomas Gleixner's Preempt-RT
outstanding for audio is that it allows to preemt all process including
IRQ handlers. Lots of work has gone into that and this part is not
merged into Linus' tree [yet].

>> cd litmus-rt
>> patch -p1 < ../litmus-rt-2011.1.patch
>> # create a working kernel configuration
>> # - select HZ=1000
>> # - enable in-kernel preemptions
>> # - disable NO_HZ
>> # - don't use power management options like frequency scaling
>> # - disable support for group scheduling
>> # - disable "Write protect kernel read-only data structures" (in kernel debug)
>>
>> I got the feeling from reading that the main thing missing is some kind of
> sane interface for assigning RT priviliges to non-root users. Then again,
> that maybe covered to some degree in the provided liblitmus which in turn
> provides:
>
> rt_launch, which can be used to start arbitrary programs as real-time tasks.

yes, but you'll want IRQ handlers to be processes and tweak their RT
priority; and you will need to patch libjack to start audio-threads as
/RT task/, and not run the whole application process (GUI) with elevated
priority.

For non-jack apps: each application will need to set up its audio/midi
i/o thread in RT. running a whole GUI with RT privileges will make
things worse because GUI interaction will also be able to interrupt
audio i/o.

> If I get adventurous I may try compiling this thing to see what I can see.
> Most of it is over my head and I'll take your word for it that this is far
> from userland friendly or ready, but it looks like a fun learning exercise.
>
> -m

have fun.

You'll need to come up with a test-case where multiple processors are
involved in audio processing.. - don't let me discourage you but be
prepared that it will longer than a quick afternoon adventure.

I don't know if the same tools used for testing the preempt-rt-kernel
can be used for litmus, but you may want to look into
http://git.kernel.org/?p=linux/kernel/git/clrkwllms/rt-tests.git
in particular https://rt.wiki.kernel.org/index.php/Cyclictest

ciao,
robin
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Sat Mar 5 20:15:02 2011

This archive was generated by hypermail 2.1.8 : Sat Mar 05 2011 - 20:15:02 EET