RealTime
Size: 1612
Comment:
|
Size: 9180
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
##(see the SpecSpec for an explanation) | == Realtime == |
Line 3: | Line 3: |
''Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.'' | '''Basic introduction is available at:'''<<BR>> [[https://help.ubuntu.com/community/UbuntuStudio/RealTimeKernel]] <<BR>><<BR>> For a more in-depth look at kernels, please see: [[https://wiki.ubuntu.com/Kernel/Dev]] <<BR>><<BR>> '''News:''' <<BR>> The -preempt and -rt kernels are no longer being developed due to lack of support. Focus has instead turned to the -lowlatency and -realtime kernels, particularly for the the release of Ubuntu 11.04 Natty Narwhal. The long-term goal is to have -lowlatency in the official Ubuntu repositories, while maintaining -realtime in a dedicated PPA.<<BR>><<BR>> As of this writing, there are no alternative kernels (including -realtime and -lowlatency) available for Maverick Meerkat in either the official repositories or any Ubuntu Studio recommended repositories (such as that maintained by [[LaunchpadHome:abogani|Alessio Igor Bogani]]). It is recommended that you use the default -generic kernel with Maverick. <<BR>><<BR>>If you wish to see work continued on -preempt or -rt, you are encouraged to volunteer. To do so, join the Ubuntu Studio Developers e-mail list (see [[http://ubuntustudio.org/|Ubuntu Studio]]). |
Line 5: | Line 13: |
## * '''Launchpad entry''': https://launchpad.net/distros/ubuntu/+spec/realtime * '''Created''': [[Date(2007-01-09T17:28:06Z)]] by AlessioIgorBogani * '''Contributors''': AlessioIgorBogani * '''Packages affected''': linux-source-2.6.20 |
'''Make-up of the team and roles officially assigned:''' ||<-7 #cccccc :> '''Kernel Responsibility Matrix''' || ||<#eeeeee> '''Kernels''' ||<#eeeeee> '''Code & Packaging''' ||<#eeeeee> '''Upstream Relations''' ||<#eeeeee> '''Bug Triage''' ||<#eeeeee> '''Kernel/DKMS External Driver Upload''' ||<#eeeeee> '''Testing''' ||<#eeeeee> '''Video Driver Testing''' || ||<#eeeeee> '''Lucid -realtime i386''' ||<#FFFFCC> none ||<#FFFFCC> none ||<#FFFFCC> none ||<#FFFFCC> none ||<#CCFFCC> Asmo Koskinen/Erik Rasmussen/Brian David ||<#CCFFCC> Brian David(fglrx)/Asmo Koskinen (nvidia) (nvidia) || ||<#eeeeee> '''Lucid -realtime amd64''' ||<#FFFFCC> none ||<#CCFFCC> Tim Cook ||<#FFFFCC> none ||<#FFFFCC> none ||<#CCFFCC> Laurent Bellegarde/Asmo Koskinen ||<#CCFFCC> holstein(nvidia) / Laurent Bellegarde(fglrx)/Asmo Koskinen (nvidia) || ||<#eeeeee> '''Natty -lowlatency i386''' ||<#CCFFCC> Luke Yelavich / Scott Lavender / Ronan Jouchet ||<#CCFFCC> Scott Lavender ||<#CCFFCC> Scott Lavender / Ronan Jouchet ||<#CCFFCC> Luke Yelavich ||<#CCFFCC> Scott Lavender / Ronan Jouchet/Asmo Koskinen/Brian David ||<#CCFFCC> Ronan Jouchet (fglrx), Luke Yelavich (NVIDIA)/Asmo Koskinen (nvidia)/Brian David (fglrx)/ ailo(nvidia) || ||<#eeeeee> '''Natty -lowlatency amd64''' ||<#CCFFCC> Luke Yelavich / Janne Jokitalo ||<#CCFFCC> Janne Jokitalo ||<#CCFFCC> Janne Jokitalo ||<#CCFFCC> Luke Yelavich ||<#CCFFCC> Janne Jokitalo/Asmo Koskinen ||<#CCFFCC> Luke Yelavich (NVIDIA)/ Janne Jokitalo (NVIDIA)/Asmo Koskinen (nvidia)/ ailo(nvidia) || ||<#eeeeee> '''Natty -realtime i386''' ||<#CCFFCC> Alessio Igor Bogani ||<#CCFFCC> Alessio Igor Bogani ||<#CCFFCC> Alessio Igor Bogani ||<#FFFFCC> none ||<#CCFFCC> Asmo Koskinen/Erik Rasmussen/Brian David ||<#CCFFCC> Asmo Koskinen (nvidia)/Brian David (fglrx)/ ailo(nvidia) || ||<#eeeeee> '''Natty -realtime amd64''' ||<#CCFFCC> Alessio Igor Bogani ||<#CCFFCC> Alessio Igor Bogani ||<#CCFFCC> Alessio Igor Bogani ||<#FFFFCC> none ||<#CCFFCC> Tim Cook/Asmo Koskinen ||<#CCFFCC> holstein(nvidia)/Asmo Koskinen (nvidia)/ ailo(nvidia)|| |
Line 10: | Line 23: |
== Summary == | '''Work in progress:''' <<BR>> Nvidia on -realtime kernel at Alessio's PPA: testers? <<BR>> |
Line 12: | Line 26: |
This specification details the plan to add hard real time support in Ubuntu. | |
Line 14: | Line 27: |
== Rationale == | '''Known issues:''' <<BR>> Missing a decent FAQ section <<BR>> Firewire audio devices: again volunteers? -- <<BR>> --[[LaunchpadHome:beejunk]] (Brian David): I also use firewire devices and can help here. As usual, mostly with testing. <<BR>> --[[LaunchpadHome:rlameiro]] (Ricardo Lameiro): I can help on testing too. I have a Edirol FA-101. Also I can try to speak directly with FFADO devs if needed. <<BR>> --[[LaunchpadHome:asmok]] (Asmo Koskinen): I can help on testing. I have an Echo Audiofire4. <<BR>> --[[LaunchpadHome:tapitman11]] (Tim Pitman): I can help as well. I also have an Echo Audiofire 4, so far working great in Maverick. <<BR>> |
Line 16: | Line 35: |
In some contexts (i.e. industrial automation, robotics and telco) the low-latency support is insufficient. In order to push Ubuntu in these contexts is necessary the support for high resolution timers and the full preemption in the Linux kernel. These features have been implemented by Thomas Gleixner and Ingo Molnar (http://people.redhat.com/mingo/realtime-preempt/). | '''Development:''' <<BR>> http://kernel.ubuntu.com/git?p=abogani/ubuntu-natty-meta-lowlatency.git;a=summary <<BR>> http://kernel.ubuntu.com/git?p=abogani/ubuntu-natty-lowlatency.git;a=summary <<BR>> |
Line 18: | Line 39: |
We want also a valid FLOSS alternative to SLERT (http://www.novell.com/products/realtime/). | '''Test images:''' <<BR>> https://launchpad.net/~abogani/+archive/ppa?field.series_filter=natty <<BR>> |
Line 20: | Line 42: |
== Use cases == | '''FAQ:''' <<BR>> Q: What is the difference between an -rt kernel and a -realtime kernel? |
Line 22: | Line 45: |
Alex is developing an application software (SCADA type) for a customer and he would be very happy to use Linux and Ubuntu for the deployment. | A: From a technical point of view, -rt and -realtime are the same kernel. They are both based on the PREEMPT_RT patchset, although the version may be different. The main difference is that the -rt kernel should be based on the Ubuntu source tree (and therefore can use the same features, patches, enabled hardware, security fixes and so on) and should offer the same services that the Ubuntu default -generic kernel offers. For example, it should be compatible with closed video drivers (nvidia and fglrx), any external DKMS drivers, and have available backport packages. The goal of an -rt kernel is to obtain a real time variant of the Ubuntu kernel that is aligned with the -generic kernel. <<BR>><<BR>> On the other hand, the -realtime kernel is a PREEMPT_RT patched kernel based on the vanilla source tree (not the Ubuntu source). This kernel will be missing Ubuntu specific code, patches or security fixes and it isn't guaranteed to be compatible with any external software (low level utilities, DKMS drivers and so on). It does not use the same Linux kernel version as the -generic kernel, and so these two kernels are not aligned. It is a working, upstream real-time kernel that is being used on Ubuntu. No more no less. |
Line 24: | Line 49: |
== Scope == | {{{#!wiki comment |
Line 26: | Line 51: |
This specification cover the linux kernel in Ubuntu. | -lowlatency == -generic + more aggressive low latency kernel configuration It can offers all things that Ubuntu offer with -generic so -backport modules, video closed drivers and so on. It is very solid and oriented to "soft" users. Trade-off between low latency and power consumption. |
Line 28: | Line 56: |
== Design == | In less words: if you need of closed video drivers, external DKMS kernel modules, linux-backports-* you should probably start to use -lowlatency (when it will be available through Ubuntu repos). Instead if you really need of an real-time system you should avoid all above or trying to make those working alone. |
Line 30: | Line 62: |
== Implementation == | |
Line 32: | Line 63: |
We hope to add a linux-image-realtime package in universe repositary (the same place of the linux-image-lowlatency package). | To put it simply: -lowlatency all the way! It delivers impressive results for maintenance requirements way lower than -realtime (or -rt even more), meaning less work for maintainers and new kernel candy for users. |
Line 34: | Line 68: |
=== Code === | Life is a trade-off: someone want a very hard real-time system without adopt other hardware architectures than pc (MCU, FPGA/ASIC, and so on), others want use normal and cheap pc, others want use also accelerated drivers also, others want a real-system which take care of they laptop's batteries too. And at the end we have limited resources(*) for give an answer on these needs (we are all volunteers). |
Line 36: | Line 76: |
=== Data preservation and migration === | }}} |
Line 38: | Line 78: |
== Unresolved issues == | === Natty Benchmarks === Below are the results from various community members. The table reports the minimum latency achieved with no Xruns ||<-4 #cccccc :> '''Natty Benchmarks Matrix''' || ||<#eeeeee> '''Tester''' ||<#eeeeee> '''Date''' ||<#eeeeee> '''Machine''' ||<#eeeeee> '''Workflow''' ||<#eeeeee> '''Maverick-generic''' ||<#eeeeee> '''Maverick-lowlatency''' ||<#eeeeee> '''Natty-generic CG-problematic''' ||<#eeeeee> '''Natty-generic 2.6.38-1''' ||<#eeeeee> '''Natty-lowlatency 2.6.38-1''' ||<#eeeeee> '''-generic 2.6.38-3''' ||<#eeeeee> '''-lowlatency 2.6.38-3'''|| ||<#eeeeee> '''Scott Lavender''' || 2011-01-27 || Dell P4, 2.8ghz machine with 3 gigs memory and an MAudio Delta 44 card || ? || ? || ? ||<#FFFFCC> 22ms || ? ||<#CCFFCC> 3ms || ||<#eeeeee> '''Ronan Jouchet''' || 2011-01-30 || Dell Vostro V13 / Celeron 1.3GHz / 2GB, TI Firewire card, Edirol FA-66 || 2channel Rakarrack session, no MIDI ||<#FFFFCC> 16ms ||<#CCFFCC> 4ms ||<#FFFFCC> unusable ||<#CCFFCC> 4ms ||<#CCFFCC> 4ms || ||<#eeeeee> '''ailo.at''' || 2011-01-31 || Dual Core 2.13GHz / Intel HDA (builtin sound) || Simple Ardour Session || ? || ? || ? ||<#CCFFCC> 2.9 ms ||<#CCFFCC> 2.9 ms || ||<#eeeeee> '''ailo.at''' || 2011-02-14 || Dual Core 2.13GHz / Intel HDA (builtin sound) || Simple Ardour Session || ? || ? || ? ||<#FFFFCC> 11.6 ms ||<#CCFFCC> 2.9 ms || ? ||<#FFFFCC> 5.6ms|| ||<#eeeeee> '''?''' || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || ||<#eeeeee> '''?''' || ? || ? || ? || ? || ? || ? || ? || ? || ? || ? || |
Line 40: | Line 89: |
== BoF agenda and discussion == | |
Line 42: | Line 90: |
---- CategorySpec CategorySpec |
=== Ancient stuff === These wiki pages covers hard real time support in Ubuntu. [[RealTime/Feisty|RealTime Feisty]] <<BR>> [[RealTime/Gutsy|RealTime Gutsy]] <<BR>> [[RealTime/Hardy|RealTime Hardy]] <<BR>> [[RealTime/Intrepid|RealTime Intrepid]] <<BR>> [[RealTime/Jaunty|RealTime Jaunty]] <<BR>> [[RealTime/Karmic|RealTime Karmic]] <<BR>> [[RealTime/Lucid|RealTime Lucid]] The RT kernel is still around! If you can help by describing it's current state, please do so. In the mean time see the official [[http://rt.wiki.kernel.org|rt.wiki.kernel.org]] and the [[http://ubuntustudio.org/|Ubuntu Studio]] team for more information. |
Realtime
Basic introduction is available at:
https://help.ubuntu.com/community/UbuntuStudio/RealTimeKernel
For a more in-depth look at kernels, please see: https://wiki.ubuntu.com/Kernel/Dev
News:
The -preempt and -rt kernels are no longer being developed due to lack of support. Focus has instead turned to the -lowlatency and -realtime kernels, particularly for the the release of Ubuntu 11.04 Natty Narwhal. The long-term goal is to have -lowlatency in the official Ubuntu repositories, while maintaining -realtime in a dedicated PPA.
As of this writing, there are no alternative kernels (including -realtime and -lowlatency) available for Maverick Meerkat in either the official repositories or any Ubuntu Studio recommended repositories (such as that maintained by Alessio Igor Bogani). It is recommended that you use the default -generic kernel with Maverick.
If you wish to see work continued on -preempt or -rt, you are encouraged to volunteer. To do so, join the Ubuntu Studio Developers e-mail list (see Ubuntu Studio).
Make-up of the team and roles officially assigned:
Kernel Responsibility Matrix |
||||||
Kernels |
Code & Packaging |
Upstream Relations |
Bug Triage |
Kernel/DKMS External Driver Upload |
Testing |
Video Driver Testing |
Lucid -realtime i386 |
none |
none |
none |
none |
Asmo Koskinen/Erik Rasmussen/Brian David |
Brian David(fglrx)/Asmo Koskinen (nvidia) (nvidia) |
Lucid -realtime amd64 |
none |
Tim Cook |
none |
none |
Laurent Bellegarde/Asmo Koskinen |
holstein(nvidia) / Laurent Bellegarde(fglrx)/Asmo Koskinen (nvidia) |
Natty -lowlatency i386 |
Luke Yelavich / Scott Lavender / Ronan Jouchet |
Scott Lavender |
Scott Lavender / Ronan Jouchet |
Luke Yelavich |
Scott Lavender / Ronan Jouchet/Asmo Koskinen/Brian David |
Ronan Jouchet (fglrx), Luke Yelavich (NVIDIA)/Asmo Koskinen (nvidia)/Brian David (fglrx)/ ailo(nvidia) |
Natty -lowlatency amd64 |
Luke Yelavich / Janne Jokitalo |
Janne Jokitalo |
Janne Jokitalo |
Luke Yelavich |
Janne Jokitalo/Asmo Koskinen |
Luke Yelavich (NVIDIA)/ Janne Jokitalo (NVIDIA)/Asmo Koskinen (nvidia)/ ailo(nvidia) |
Natty -realtime i386 |
Alessio Igor Bogani |
Alessio Igor Bogani |
Alessio Igor Bogani |
none |
Asmo Koskinen/Erik Rasmussen/Brian David |
Asmo Koskinen (nvidia)/Brian David (fglrx)/ ailo(nvidia) |
Natty -realtime amd64 |
Alessio Igor Bogani |
Alessio Igor Bogani |
Alessio Igor Bogani |
none |
Tim Cook/Asmo Koskinen |
holstein(nvidia)/Asmo Koskinen (nvidia)/ ailo(nvidia) |
Work in progress:
Nvidia on -realtime kernel at Alessio's PPA: testers?
Known issues:
Missing a decent FAQ section
Firewire audio devices: again volunteers? --
--beejunk (Brian David): I also use firewire devices and can help here. As usual, mostly with testing.
--rlameiro (Ricardo Lameiro): I can help on testing too. I have a Edirol FA-101. Also I can try to speak directly with FFADO devs if needed.
--asmok (Asmo Koskinen): I can help on testing. I have an Echo Audiofire4.
--tapitman11 (Tim Pitman): I can help as well. I also have an Echo Audiofire 4, so far working great in Maverick.
Development:
http://kernel.ubuntu.com/git?p=abogani/ubuntu-natty-meta-lowlatency.git;a=summary
http://kernel.ubuntu.com/git?p=abogani/ubuntu-natty-lowlatency.git;a=summary
Test images:
https://launchpad.net/~abogani/+archive/ppa?field.series_filter=natty
FAQ:
Q: What is the difference between an -rt kernel and a -realtime kernel?
A: From a technical point of view, -rt and -realtime are the same kernel. They are both based on the PREEMPT_RT patchset, although the version may be different. The main difference is that the -rt kernel should be based on the Ubuntu source tree (and therefore can use the same features, patches, enabled hardware, security fixes and so on) and should offer the same services that the Ubuntu default -generic kernel offers. For example, it should be compatible with closed video drivers (nvidia and fglrx), any external DKMS drivers, and have available backport packages. The goal of an -rt kernel is to obtain a real time variant of the Ubuntu kernel that is aligned with the -generic kernel.
On the other hand, the -realtime kernel is a PREEMPT_RT patched kernel based on the vanilla source tree (not the Ubuntu source). This kernel will be missing Ubuntu specific code, patches or security fixes and it isn't guaranteed to be compatible with any external software (low level utilities, DKMS drivers and so on). It does not use the same Linux kernel version as the -generic kernel, and so these two kernels are not aligned. It is a working, upstream real-time kernel that is being used on Ubuntu. No more no less.
Natty Benchmarks
Below are the results from various community members. The table reports the minimum latency achieved with no Xruns
Natty Benchmarks Matrix |
||||||||||
Tester |
Date |
Machine |
Workflow |
Maverick-generic |
Maverick-lowlatency |
Natty-generic CG-problematic |
Natty-generic 2.6.38-1 |
Natty-lowlatency 2.6.38-1 |
-generic 2.6.38-3 |
-lowlatency 2.6.38-3 |
Scott Lavender |
2011-01-27 |
Dell P4, 2.8ghz machine with 3 gigs memory and an MAudio Delta 44 card |
? |
? |
? |
22ms |
? |
3ms |
||
Ronan Jouchet |
2011-01-30 |
Dell Vostro V13 / Celeron 1.3GHz / 2GB, TI Firewire card, Edirol FA-66 |
2channel Rakarrack session, no MIDI |
16ms |
4ms |
unusable |
4ms |
4ms |
||
ailo.at |
2011-01-31 |
Dual Core 2.13GHz / Intel HDA (builtin sound) |
Simple Ardour Session |
? |
? |
? |
2.9 ms |
2.9 ms |
||
ailo.at |
2011-02-14 |
Dual Core 2.13GHz / Intel HDA (builtin sound) |
Simple Ardour Session |
? |
? |
? |
11.6 ms |
2.9 ms |
? |
5.6ms |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
Ancient stuff
These wiki pages covers hard real time support in Ubuntu.
RealTime Feisty
RealTime Gutsy
RealTime Hardy
RealTime Intrepid
RealTime Jaunty
RealTime Karmic
RealTime Lucid
The RT kernel is still around! If you can help by describing it's current state, please do so. In the mean time see the official rt.wiki.kernel.org and the Ubuntu Studio team for more information.
RealTime (last edited 2011-02-23 10:51:46 by cache1)