SourceForge.net Logo

Goals

The goals are pretty much the same. Since the real time core is in pretty good hands with Ingo, Thomas Gleiner and Steve Rosdedt, I'm going to try and focus on the other stuff with regarding frequency and bandwidth schedulers as well as the userspace API stuff to link the two together properly and intelligently.

A replacement for /dev/rtc is needed and I believe that it can eventually be made into a unified scheduling mechanism with the ability to check for soft overruns and to do intelligent thread yields through read/write syscalls into the driver. Currently I'm working on bugs and trying to get familiar with the kernel again after more than year of hiatus from Linux development as of 8/21/06 (--billh).

The old page is here: Here

Ingo's rt patches

The initial goals of this project regarding preemptibility have been reached by Ingo Molnar's work in his -rt tree. It is available at:

http://people.redhat.com/mingo/realtime-preempt/

Close but no...what did you try to set on fire, put in your mouth and smoke ?

I did get pretty close to making the Linux kernel fully preemptive. I was able to map out 4 out of the 6 top level locks and problem areas in the kernel to make it correctly preemptible. It's summarized here in the original mmLinux announcement with the areas quoted below from Ingo's analysis message here:

http://lwn.net/Articles/107269/

Ingo Molnar's analysis of both the original mmLinux and Montavista's stuff here:

http://lwn.net/Articles/106567/

[some text quoted from that message]

...
to recap the conceptual issues that needed solving: the previous patch
already converted a fair portion of spinlocks to mutexes, but that in a
fully preemptible kernel model the following locking primitives are
especially problematic:

        - RCU locking
        - per-cpu counters and per-cpu variables
        - tlb gather/release logic
        - seqlocks
        - atomic-kmaps
        - pte mapping

note that while we tend to think about these as SMP locking primitives,
in a fully preemptible model these locking rules are necessary for
correctness, even on a single-CPU embedded box.
...

I basically missed the "seqlocks" and tlb stuff, but since I knew about the other locking violations (things deadlock prone). I would have gotten to it shortly (few weeks) since I enabled "atomic" critical section checks.

The original mmLinux announcment here

http://lwn.net/Articles/106566/

Closing notes

Ingo's work in the -rt preempt kernel, as Karim calls it, the "uber-preemption" project, is a historical milestone in the Linux kernel community. I'm glad to have been apart of it somehow and I believe this is going to have large implications throughout the software industry at so many levels (multimedia on the desktop, embedded, etc...). I would like to have thought that if Ingo didn't step in, I or somebody else would have done this work instead. I was certainly close enough :)

bill