kernel

Differences between revisions 2 and 12 (spanning 10 versions)
Revision 2 as of 2012-05-08 23:18:10
Size: 1387
Editor: 90-230-166-102-no35
Comment:
Revision 12 as of 2012-05-14 16:47:02
Size: 3325
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]]'''

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'''
 * '''[[ 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]]'''

{{{
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
 * '''[[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
{{{
CONFIG_HZ_1000=y
CONFIG_HZ=1000
# CONFIG_NO_HZ is not set
}}}

(optionally, tickless timer - add the config here)

----
Line 19: Line 90:
{{{
# CONFIG_RCU_BOOST is not set
{{{{
Line 22: Line 93:
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_RCU_CPU_STALL_VERBOSE is not set
Line 25: Line 94:
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
Line 28: Line 95:
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_HZ_1000=y
CONFIG_HZ=1000
Line 35: Line 97:
# CONFIG_NO_HZ is not set
Line 37: Line 98:
}}} }}}}

../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

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)


TODO - do the same for the configs below:

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

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)