kernel

Differences between revisions 1 and 14 (spanning 13 versions)
Revision 1 as of 2012-05-08 23:13:15
Size: 1393
Editor: 90-230-166-102-no35
Comment:
Revision 14 as of 2012-05-14 17:16:34
Size: 3990
Editor: 90-230-166-102-no35
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
[[UbuntuStudio/audio-settings | ../UbuntuStudio/audio-settings]]
Line 2: Line 4:

== Kernel Testing ==

=== Building your own kernel ===

A short description of how to build a kernel for testing.
Line 7: Line 15:
=== Configurations of interest === === Configurations of interest for linux-lowlatency ===
Line 11: Line 19:
===== To enable the use of the rtirq script: ===== === To enable low latency (needs to be expanded) ===
Line 13: Line 21:
 * '''[[http://cateee.net/lkddb/web-lkddb/CMDLINE.html | CONFIG_CMDLINE]]="threadirqs"'''
  * ''depends on:'' '''[[http://cateee.net/lkddb/web-lkddb/CMDLINE_BOOL.html | CONFIG_CMDLINE_BOOL]]=y'''
  * ''needed for "threadirqs":'' '''[[http://cateee.net/lkddb/web-lkddb/IRQ_FORCED_THREADING.html | CONFIG_IRQ_FORCED_THREADING=]]y'''
 * '''[[http://cateee.net/lkddb/web-lkddb/PREEMPT.html | CONFIG_PREEMPT]]'''
  * ''conflicts with:'' '''[[http://cateee.net/lkddb/web-lkddb/PREEMPT_NONE.html |CONFIG_PREEMPT_NONE]]'''
  * ''conflicts with:'' '''[[http://cateee.net/lkddb/web-lkddb/PREEMPT_NONE.html | CONFIG_PREEMPT_VOLUNTARY]]'''
Line 17: Line 25:
'''TODO''' - do the same for the configs below: To enable this option edit the config file to have these line read:
Line 19: Line 27:
<<BR>> {{{{
CONFIG_PREEMPT=y
# CONFIG_PREEMPT_NONE
# CONFIG_PREEMPT_VOLUNTARY
}}}}

'''May reduce latency'''
 * '''[[ http://cateee.net/lkddb/web-lkddb/PREEMPT_RCU.html | CONFIG_PREEMPT_RCU ]]'''

{{{
CONFIG_PREEMPT_RCU=y
}}}

''additional, related configs''

 * '''[[http://cateee.net/lkddb/web-lkddb/TREE_PREEMPT_RCU.html | CONFIG_TREE_PREEMPT_RCU]]'''
 * '''[[http://cateee.net/lkddb/web-lkddb/RCU_BOOST.html | CONFIG_RCU_BOOST]]'''
 * '''[[http://cateee.net/lkddb/web-lkddb/RCU_CPU_STALL_DETECTOR.html | CONFIG_RCU_CPU_STALL_DETECTOR]]'''
 * '''[[http://cateee.net/lkddb/web-lkddb/RCU_CPU_STALL_VERBOSE.html | CONFIG_RCU_CPU_STALL_VERBOSE]]'''

as configure in current -lowlatency..
{{{
CONFIG_TREE_PREEMPT_RCU=y
Line 21: Line 51:
# CONFIG_NTP_PPS is not set
Line 24: Line 53:
# CONFIG_PREEMPT_TRACER is not set
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
CONFIG_PREEMPT_NOTIFIERS=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
}}}

=== To enable the use of the rtirq script to change rtprio for devices: ===

this enables the use of ''threadirqs'' as a kernel boot parameter
 * '''[[http://cateee.net/lkddb/web-lkddb/IRQ_FORCED_THREADING.html | CONFIG_IRQ_FORCED_THREADING]]'''

optionally, to make ''threadirqs'' a default boot parameter
 * '''[[http://cateee.net/lkddb/web-lkddb/CMDLINE.html | CONFIG_CMDLINE]]'''
  * ''depends on:'' '''[[http://cateee.net/lkddb/web-lkddb/CMDLINE_BOOL.html | CONFIG_CMDLINE_BOOL]]'''

To enable these options edit the config file to have these line read:
{{{{
IRQ_FORCED_THREADING=y
CONFIG_CMDLINE="threadirqs"
CONFIG_CMDLINE_BOOL=y
}}}}

=== High resolution timer: ===

(Not exactly sure which of CONFIG_HZ=1000 and CONFIG_HZ_1000=y depend on which. )
 * '''[[http://cateee.net/lkddb/web-lkddb/HZ_1000.html | CONFIG_HZ_1000]]'''
 * '''[[http://cateee.net/lkddb/web-lkddb/HZ.html | CONFIG_HZ]]'''
  * ''depends on:'' '''[[http://cateee.net/lkddb/web-lkddb/NO_HZ.html | CONFIG_NO_HZ]]'''

to enable high resolution timer
{{{
Line 33: Line 82:
# CONFIG_NO_HZ is not set
}}}

(optionally, tickless timer - add the config here)

=== Need to be investigated ===

 * '''[[http://cateee.net/lkddb/web-lkddb/NTP_PPS.html | CONFIG_NTP_PPS]]'''
 * '''[[http://cateee.net/lkddb/web-lkddb/SLAB.html | CONFIG_SLAB]]'''
 * '''[[http://cateee.net/lkddb/web-lkddb/PREEMPT_NOTIFIERS.html | CONFIG_PREEMPT_NOTIFIERS]]'''
 * '''[[[ http://cateee.net/lkddb/web-lkddb/EXPERT.html | CONFIG_EXPERT]]'''
 * '''[[http://cateee.net/lkddb/web-lkddb/PREEMPT_TRACER.html | CONFIG_PREEMPT_TRACER]]'''
 * '''[[http://cateee.net/lkddb/web-lkddb/DEBUG_KERNEL.html | CONFIG_DEBUG_KERNEL]]'''

as used in current -lowlatency
{{{
# CONFIG_NTP_PPS is not set
Line 34: Line 100:
CONFIG_PREEMPT_NOTIFIERS=y
Line 35: Line 102:
# CONFIG_NO_HZ is not set # CONFIG_PREEMPT_TRACER is not set
Line 37: Line 104:
<<BR>> }}}

== Additional configs ==

* [[http://cateee.net/lkddb/web-lkddb/RT_GROUP_SCHED.html | CONFIG_RT_GROUP_SCHED]]

../UbuntuStudio/audio-settings

Discussion about kernels and kernel configurations here..

Kernel Testing

Building your own kernel

A short description of how to build a kernel for testing.

linux-lowlatency

Shipped with Ubuntu Studio since 12.04 Precise. Principally a standard Ubuntu kernel (no additional patches to the code, allthough the linux-lowlatency shipped with precise includes a minor patch).

Configurations of interest for linux-lowlatency

These configs need to be somewhat documented and tested

To enable low latency (needs to be expanded)

To enable this option edit the config file to have these line read:

CONFIG_PREEMPT=y
# CONFIG_PREEMPT_NONE
# CONFIG_PREEMPT_VOLUNTARY

May reduce latency

CONFIG_PREEMPT_RCU=y

additional, related configs

as configure in current -lowlatency..

CONFIG_TREE_PREEMPT_RCU=y
# CONFIG_RCU_BOOST is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_RCU_CPU_STALL_VERBOSE is not set

To enable the use of the rtirq script to change rtprio for devices:

this enables the use of threadirqs as a kernel boot parameter

optionally, to make threadirqs a default boot parameter

To enable these options edit the config file to have these line read:

IRQ_FORCED_THREADING=y
CONFIG_CMDLINE="threadirqs"
CONFIG_CMDLINE_BOOL=y

High resolution timer:

(Not exactly sure which of CONFIG_HZ=1000 and CONFIG_HZ_1000=y depend on which. )

to enable high resolution timer

CONFIG_HZ_1000=y
CONFIG_HZ=1000
# CONFIG_NO_HZ is not set

(optionally, tickless timer - add the config here)

Need to be investigated

as used in current -lowlatency

# CONFIG_NTP_PPS is not set
CONFIG_SLAB=y
CONFIG_PREEMPT_NOTIFIERS=y
# CONFIG_EXPERT is not set
# CONFIG_PREEMPT_TRACER is not set
# CONFIG_DEBUG_KERNEL is not set 

Additional configs

* CONFIG_RT_GROUP_SCHED

linux-rt

Not in Ubuntu repo since 9.10 Karmic.

UbuntuStudio/audio-settings/kernel (last edited 2012-07-23 10:58:24 by 90-230-166-102-no35)