RealTime

Differences between revisions 1 and 105 (spanning 104 versions)
Revision 1 as of 2007-01-09 16:20:53
Size: 1612
Editor: adsl203-157-083
Comment:
Revision 105 as of 2010-10-11 21:44:28
Size: 7500
Editor: CPE-124-189-85-102
Comment: Add myself to NVIDIA driver testing.
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>>
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 12:
## * '''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 -lowlatency i386''' ||<#FFFFCC> none ||<#FFFFCC> none ||<#FFFFCC> none ||<#FFFFCC> none ||<#FFFFCC> none ||<#FFFFCC> none ||
||<#eeeeee> '''Lucid -lowlatency amd64''' ||<#FFFFCC> none ||<#CCFFCC> Tim Cook ||<#FFFFCC> none ||<#FFFFCC> none ||<#CCFFCC> Tim Cook ||<#FFFFCC> none ||
||<#eeeeee> '''Lucid -rt i386''' ||<#FFFFCC> none ||<#FFFFCC> none ||<#FFFFCC> none ||<#FFFFCC> none ||<#FFFFCC> none ||<#CCFFCC> Brian David ||
||<#eeeeee> '''Lucid -rt amd64''' ||<#FFFFCC> none ||<#CCFFCC> Tim Cook ||<#FFFFCC> none ||<#FFFFCC> none ||<#CCFFCC> Laurent Bellegarde ||<#FFFFCC> none ||
||<#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 ||<#CCFFCC> Ronan Jouchet (fglrx), Luke Yelavich (NVIDIA) ||
||<#eeeeee> '''Natty -lowlatency amd64''' ||<#CCFFCC> Luke Yelavich ||<#FFFFCC> none ||<#FFFFCC> none ||<#CCFFCC> Luke Yelavich ||<#FFFFCC> none ||<#FFFFCC> Luke Yelavich (NVIDIA) ||
||<#eeeeee> '''Natty -rt i386''' ||<#FFFFCC> none ||<#CCFFCC> Alessio Igor Bogani ||<#FFFFCC> none ||<#FFFFCC> none ||<#FFFFCC> none ||<#FFFFCC> none ||
||<#eeeeee> '''Natty -rt amd64''' ||<#FFFFCC> none ||<#CCFFCC> Alessio Igor Bogani ||<#FFFFCC> none ||<#FFFFCC> none ||<#CCFFCC> Tim Cook ||<#FFFFCC> none ||
Line 10: Line 24:
== Summary == '''Persons who would want help but not yet assigned to something:''' <<BR>>
- Asmo Koskinen: Test on -rt on Lucid, Maverick and Natty (AMD64 and i386) with nVidia, M-Audio Delta 66 and Echo Audio Fire 4 <<BR>>
- Erik Rasmussen : Test on -rt <<BR>>
- Mike Holstein : -realtime on Lucid <<BR>>
- ailo : -rt on Maverick with nvidia <<BR>>
- Brian David: Testing fglrx in all kernel variants, testing -realtime and -rt kernels, if available<<BR>>
- Laurent Bellegarde: testing, advertising, conference, demonstration to large public, RT/realtime amd64 lucid + Ati radeon fglrx <<BR>>
- Tim Cook: test on -rt and Relationships with other communities <<BR>>
- Jeremy Jongepier: Test and packaging on -rt/-realtime <<BR>>
- Janne Jokitalo: Testing, packaging, Ubuntu and Ubuntu Studio relation, learning to generally tweak kernels <<BR>>
- Ronan Jouchet: {Packaging, Bug triage, Testing, Video Driver Testing} on Natty -lowlatency i386<<BR>>
Line 12: Line 36:
This specification details the plan to add hard real time support in Ubuntu. '''Work in progress:''' <<BR>>
Nvidia on -realtime kernel at Alessio's PPA: testers? <<BR>>
Line 14: Line 39:
== Rationale ==
Line 16: Line 40:
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/). '''Known issues:''' <<BR>>
Missing a decent FAQ section <<BR>>
Firewire audio devices: again volunteers? <<BR>>
Line 18: Line 44:
We want also a valid FLOSS alternative to SLERT (http://www.novell.com/products/realtime/).
Line 20: Line 45:
== Use cases == '''FAQ:''' <<BR>>
Q: What is the difference between an -rt kernel and a -realtime kernel?
Line 22: Line 48:
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 52:
== Scope == {{{#!wiki comment
Line 26: Line 54:
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 59:
== 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 65:
== Implementation ==
Line 32: Line 66:
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 71:
=== 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 79:
=== Data preservation and migration === }}}
Line 38: Line 81:
== Unresolved issues ==
Line 40: Line 82:
== BoF agenda and discussion == === Ancient stuff ===
These wiki pages covers hard real time support in Ubuntu.
Line 42: Line 85:
----
CategorySpec CategorySpec
[[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.

<<BR>><<BR>><<BR>><<BR>>

'''Reference Material''''<<BR>><<BR>>
'''Make-up of the team and rules officially assigned:'''
||Leader|| || ||i386 amd64||vacant||
||Code & Packaging||Natty||-lowlatency||i386 amd64||Luke Yelavich||
||Upstream relationship||Natty||-realtime||i386 amd64||Alessio Igor Bogani||
||Bug triage|| || || ||vacant||
||Kernel and DKMS external driver upload||Natty||-lowlatency||i386 amd64||Luke Yelavich||
||Test||Lucid||fglrx on -realtime||i386||Brian David||

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.

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 -lowlatency i386

none

none

none

none

none

none

Lucid -lowlatency amd64

none

Tim Cook

none

none

Tim Cook

none

Lucid -rt i386

none

none

none

none

none

Brian David

Lucid -rt amd64

none

Tim Cook

none

none

Laurent Bellegarde

none

Natty -lowlatency i386

Luke Yelavich / Scott Lavender / Ronan Jouchet

Scott Lavender

Scott Lavender / Ronan Jouchet

Luke Yelavich

Scott Lavender / Ronan Jouchet

Ronan Jouchet (fglrx), Luke Yelavich (NVIDIA)

Natty -lowlatency amd64

Luke Yelavich

none

none

Luke Yelavich

none

Luke Yelavich (NVIDIA)

Natty -rt i386

none

Alessio Igor Bogani

none

none

none

none

Natty -rt amd64

none

Alessio Igor Bogani

none

none

Tim Cook

none

Persons who would want help but not yet assigned to something:
- Asmo Koskinen: Test on -rt on Lucid, Maverick and Natty (AMD64 and i386) with nVidia, M-Audio Delta 66 and Echo Audio Fire 4
- Erik Rasmussen : Test on -rt
- Mike Holstein : -realtime on Lucid
- ailo : -rt on Maverick with nvidia
- Brian David: Testing fglrx in all kernel variants, testing -realtime and -rt kernels, if available
- Laurent Bellegarde: testing, advertising, conference, demonstration to large public, RT/realtime amd64 lucid + Ati radeon fglrx
- Tim Cook: test on -rt and Relationships with other communities
- Jeremy Jongepier: Test and packaging on -rt/-realtime
- Janne Jokitalo: Testing, packaging, Ubuntu and Ubuntu Studio relation, learning to generally tweak kernels
- Ronan Jouchet: {Packaging, Bug triage, Testing, Video Driver Testing} on Natty -lowlatency i386

Work in progress:
Nvidia on -realtime kernel at Alessio's PPA: testers?

Known issues:
Missing a decent FAQ section
Firewire audio devices: again volunteers?

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.

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.





Reference Material'

Make-up of the team and rules officially assigned:

Leader

i386 amd64

vacant

Code & Packaging

Natty

-lowlatency

i386 amd64

Luke Yelavich

Upstream relationship

Natty

-realtime

i386 amd64

Alessio Igor Bogani

Bug triage

vacant

Kernel and DKMS external driver upload

Natty

-lowlatency

i386 amd64

Luke Yelavich

Test

Lucid

fglrx on -realtime

i386

Brian David

RealTime (last edited 2011-02-23 10:51:46 by cache1)