Hardy

Differences between revisions 5 and 22 (spanning 17 versions)
Revision 5 as of 2007-10-24 07:50:13
Size: 3147
Editor: adsl203-157-083
Comment:
Revision 22 as of 2007-12-13 11:00:05
Size: 8481
Editor: adsl203-157-083
Comment: Team created
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
 * '''Contributors''':  * '''Contributors''': [wiki:PeterLJones PeterLJones], [wiki:DeraldWoods DeraldWoods], [wiki:miguel Miguel]
Line 13: Line 13:
This specification details the plan to improve hard real time support in Ubuntu Hardy. In particularly for comply with quality that users want by an LTS release. This specification details the plan to improve hard real time support in Ubuntu Hardy. In particular, to comply with quality levels that users want from an LTS release.
Line 25: Line 25:
In order to push Ubuntu in very high demanding business contexts (i.e. industrial automation, financial, robotics and telco) it is necessary to improve realtime kernel flavour support. In order to push Ubuntu in very highly demanding business (e.g. industrial automation, financial, robotics, advanced multimedia and telco) and other contexts, it is necessary to improve real-time kernel flavour support.
Line 29: Line 29:
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. '''1. Deterministic (Hard-Realtime)''' [Industrial Control, Robotics, Automation, DAQ, etc.][[BR]]

    * Alex is developing an application ([http://en.wikipedia.org/wiki/SCADA SCADA] type) for a customer and he would be very happy to use Linux and Ubuntu for the deployment.

    * John is using the Ubuntu distribution, with the '''linux-rt''' kernel, as the RTOS, for a GANTRY type widget assembly application. The system has digital I/O, servo motors, and GPIB instrumentation.

'''2. Non-Deterministic (Low-Latency)''' [Data Sampling, Analysis Tools, Realtime Monitoring, etc.][[BR]]

    * Beth is a user wanting application stability but with real-time performance capability for running Audio and MIDI applications (such as [http://jackaudio.org/ JACK] and its clients). This could include running a full [http://www.x.org X]/[http://www.gtk.org Gtk] UI stack with [http://www.winehq.com WINE] and/or [http://www.joebutton.co.uk/fst/ FST], with networking to allow for collaborative performances (e.g. [http://ninjam.com NINJAM]). Stability: must be reliable enough for live performance (system hangs look terribly unprofessional). Performance: no dropped MIDI messages (hanging notes suck...), no dropped audio frames (audio glitches suck...).
Line 33: Line 41:
##== Assumptions == == Scope ==

This specification covers the rt linux kernel flavour in Ubuntu.

### == Assumptions ==

## * [wiki:KernelTeam/Hardy/KernelVersion Kernel Version]: 2.6.24?
## * [http://lwn.net/Articles/230501/ Scheduler] in stock kernel: CFS
Line 41: Line 56:
##This section should describe a plan of action (the "how") to implement the changes discussed. Could include  ##This section should describe a plan of action (the "how") to implement the changes discussed. Could include
Line 62: Line 77:
##short plan that anybody can follow that demonstrates the feature is working. This can then be used during CD  ##short plan that anybody can follow that demonstrates the feature is working. This can then be used during CD
Line 67: Line 82:
##== Outstanding Issues == ### == Outstanding Issues ==
Line 69: Line 84:
##This should highlight any issues that should be addressed in further specifications, and not problems with the  ##This should highlight any issues that should be addressed in further specifications, and not problems with the
Line 71: Line 86:

## * How will -rt fare with the introduction of CFS, replacing O(1).

== FAQ ==

'''Q) Did you manage to include all the regular Ubuntu kernel patches in it? If not, is it possible to know what was left out?''' [[BR]]
A) We use _only_ the full Ubuntu Kernel (not vanilla, not custom version or other). The Ubuntu Realtime kernel is the Ubuntu Kernel plus the real-time pre-emption patch. Also the configuration (aka /boot/config*) is the same except for specific real-time options.

'''Q) Where can I find documentation?''' [[BR]]
A) All existing docs are available on http://rt.wiki.kernel.org

'''Q) What are the differences from vanilla Ingo Molnar's patch?''' [[BR]]
A) A simple adaptation to the BenC's kernel git tree isn't the only difference: We work on Ubuntu specific code or drivers (aka linux-ubuntu-modules/linux-restricted-modules) and also remove all code which isn't strictly related to real-time pre-emption support (if any).

'''Q) What features will be included in Ubuntu rt kernel flavour?''' [[BR]]
A) CPU shielding, priority inheritance, sleeping spinlocks, interrupt threads and high-resolution timers and CFS optimizations.

'''Q) How to get the source code? Is there a Git repository?''' [[BR]]
A) (I belive there is no Git repository. The best way is, I guess, get the Ubuntu kernel from the Git repository at http://kernel.ubuntu.com and then apply the patch from Ingo Molnar. Is there a patch package? Alessio, could you please elaborate on this?)
Line 74: Line 108:
##Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was ##discussed and note any options that were rejected. Collaboration with instant messaging, chat or mailing list? [[BR]]
    I would prefer using a mailing list for team collaboration. [[wiki:DeraldWoods Derald]] [[BR]]
    Ideally a forum; else a mailing list; else a permanent, logged IRC chat room. [[wiki:PeterLJones Peter]] [[BR]]
    I actually prefer a mailing list but a forum would also be OK. [[wiki:miguel Miguel]] [[BR]]
    I would prefer mailing list but IRC Chat root is also useful for me. [[wiki:AlessioIgorBogani Alessio]]
Line 76: Line 114:
Team creation? [[BR]]
Posix File Capabilties? [[BR]]
Backport of the last upstream code? [[BR]]
Debug packages?
*) PolicyKit, framework for secure privilege elevation integration, seems which became default in Hardy. Investigate on possible integration. [[BR]]

*) Backport of the last upstream code? [[BR]]
It is necessary define a tool/method to track rt development and thus eventually backport useful bits.

 * Packaging the '''rt-tests''' utilities. [[http://rt.wiki.kernel.org/index.php/Cyclictest cyclictest/signaltest]] [[http://rt.wiki.kernel.org/index.php/Preemption_Test preemption test]] [[http://devresources.linux-foundation.org/craiger/hackbench/ hackbench]]

*) Debug packages? [[BR]]
See at https://blueprints.launchpad.net/ubuntu/+spec/daily-kernel-builds

There are some other test applications on http://rt.wiki.kernel.org that could also be integrated in a future test suite. And, of course, this test suite could be executed daily, integrated in the daily-kernel-builds referred above. [[wiki:miguel Miguel]]

In this way you testing realtime performance of the buildd server (the Ubuntu server that compile kernel). Testing is a very useful things but it is necessary find an other way for do it. [[wiki:AlessioIgorBogani Alessio]]

*) RT documentation? [[BR]]
I believe that it would be necessary to have some documentation package, at least for application developers. As a starting point, the documentation in the http://rt.wiki.kernel.org could be used but I think that something for newcomers should also be written (in cooperation with the http://rt.wiki.kernel.org maintainers, of course).

Good suggestion! [[wiki:AlessioIgorBogani Alessio]]

Need to review: [[BR]]
1. High precision timers don't work on machine which have only PIT as souce clock [http://www.mail-archive.com/linux-rt-users@vger.kernel.org/msg00375.html more info] [[BR]]
2. The realtime kernel could expose you to security issues[[BR]]
3. On some machine esd with realtime kernel freeze GNOME (please kill esd and relaunch it after)[[BR]]
4. Restricted modules could increase latencies (please buy only hardware which have a free driver!) [[BR]]


 * Any suggestions/feedbacks/requests? [wiki:AlessioIgorBogani Alessio] [[BR]][[BR]]

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.

Summary

This specification details the plan to improve hard real time support in Ubuntu Hardy. In particular, to comply with quality levels that users want from an LTS release.

Rationale

In order to push Ubuntu in very highly demanding business (e.g. industrial automation, financial, robotics, advanced multimedia and telco) and other contexts, it is necessary to improve real-time kernel flavour support.

Use Cases

1. Deterministic (Hard-Realtime) [Industrial Control, Robotics, Automation, DAQ, etc.]BR

  • Alex is developing an application ([http://en.wikipedia.org/wiki/SCADA SCADA] type) for a customer and he would be very happy to use Linux and Ubuntu for the deployment.

  • John is using the Ubuntu distribution, with the linux-rt kernel, as the RTOS, for a GANTRY type widget assembly application. The system has digital I/O, servo motors, and GPIB instrumentation.

2. Non-Deterministic (Low-Latency) [Data Sampling, Analysis Tools, Realtime Monitoring, etc.]BR

  • Beth is a user wanting application stability but with real-time performance capability for running Audio and MIDI applications (such as [http://jackaudio.org/ JACK] and its clients). This could include running a full [http://www.x.org X]/[http://www.gtk.org Gtk] UI stack with [http://www.winehq.com WINE] and/or [http://www.joebutton.co.uk/fst/ FST], with networking to allow for collaborative performances (e.g. [http://ninjam.com NINJAM]). Stability: must be reliable enough for live performance (system hangs look terribly unprofessional). Performance: no dropped MIDI messages (hanging notes suck...), no dropped audio frames (audio glitches suck...).

Scope

This specification covers the rt linux kernel flavour in Ubuntu.

FAQ

Q) Did you manage to include all the regular Ubuntu kernel patches in it? If not, is it possible to know what was left out? BR A) We use _only_ the full Ubuntu Kernel (not vanilla, not custom version or other). The Ubuntu Realtime kernel is the Ubuntu Kernel plus the real-time pre-emption patch. Also the configuration (aka /boot/config*) is the same except for specific real-time options.

Q) Where can I find documentation? BR A) All existing docs are available on http://rt.wiki.kernel.org

Q) What are the differences from vanilla Ingo Molnar's patch? BR A) A simple adaptation to the BenC's kernel git tree isn't the only difference: We work on Ubuntu specific code or drivers (aka linux-ubuntu-modules/linux-restricted-modules) and also remove all code which isn't strictly related to real-time pre-emption support (if any).

Q) What features will be included in Ubuntu rt kernel flavour? BR A) CPU shielding, priority inheritance, sleeping spinlocks, interrupt threads and high-resolution timers and CFS optimizations.

Q) How to get the source code? Is there a Git repository? BR A) (I belive there is no Git repository. The best way is, I guess, get the Ubuntu kernel from the Git repository at http://kernel.ubuntu.com and then apply the patch from Ingo Molnar. Is there a patch package? Alessio, could you please elaborate on this?)

BoF agenda and discussion

Collaboration with instant messaging, chat or mailing list? BR

*) PolicyKit, framework for secure privilege elevation integration, seems which became default in Hardy. Investigate on possible integration. BR

*) Backport of the last upstream code? BR It is necessary define a tool/method to track rt development and thus eventually backport useful bits.

*) Debug packages? BR See at https://blueprints.launchpad.net/ubuntu/+spec/daily-kernel-builds

There are some other test applications on http://rt.wiki.kernel.org that could also be integrated in a future test suite. And, of course, this test suite could be executed daily, integrated in the daily-kernel-builds referred above. wiki:miguel Miguel

In this way you testing realtime performance of the buildd server (the Ubuntu server that compile kernel). Testing is a very useful things but it is necessary find an other way for do it. wiki:AlessioIgorBogani Alessio

*) RT documentation? BR I believe that it would be necessary to have some documentation package, at least for application developers. As a starting point, the documentation in the http://rt.wiki.kernel.org could be used but I think that something for newcomers should also be written (in cooperation with the http://rt.wiki.kernel.org maintainers, of course).

Good suggestion! wiki:AlessioIgorBogani Alessio

Need to review: BR 1. High precision timers don't work on machine which have only PIT as souce clock [http://www.mail-archive.com/linux-rt-users@vger.kernel.org/msg00375.html more info] BR 2. The realtime kernel could expose you to security issuesBR 3. On some machine esd with realtime kernel freeze GNOME (please kill esd and relaunch it after)BR 4. Restricted modules could increase latencies (please buy only hardware which have a free driver!) BR


CategorySpec

RealTime/Hardy (last edited 2008-11-07 15:34:02 by d83-183-69-42)