[pulseaudio-discuss] Distribution kernels and glitch-free (Packagers, read this!)

Sean McNamara smcnam at gmail.com
Tue Feb 24 05:34:19 PST 2009


Hi,

On Tue, Feb 24, 2009 at 7:20 AM, Jan Claeys <lists at janc.be> wrote:
> Op maandag 23-02-2009 om 15:18 uur [tijdzone -0500], schreef Sean
> McNamara:
>> * Once upon a time (old releases, e.g. 7.04 and below?) there was the
>> -lowlatency kernel flavor. This one went all the way and gave us
>> CONFIG_HZ=1000 and a fully preemptible kernel (not only voluntary, but
>> forced preemption). I'm not sure of the rationale for discontinuing
>> this kernel flavor, but it would be silly to say it's only because of
>> mirror disk space or something; their disk space consumption has gone
>> way up since then.
>
> Maybe have a look at the -rt kernel?  :)

The -rt kernel is in universe, and is not kept in sync with the kernel
revision of the -generic, -server and -virtual kernels. Here are my
observations about -rt so far:

*Grabbing linux-rt out of the jaunty repositories gives me a 2.6.27.3
kernel, whereas the kernels in the "main" repository, -generic and
-server, are 2.6.28.x kernels. There is some neat stuff in 2.6.28 that
I couldn't live without, such as Intel GEM for integrated graphics,
which is not in mainline 2.6.27.
*linux-rt does not have linux-ubuntu-modules-rt package; therefore any
custom Ubuntu patches appear to not apply.
*This kernel uses the realtime patchset, which has different
implications altogether. For ordinary desktop or server use, this
doesn't seem the way to go. Rather than try to force deterministic
scheduling to guarantee PA adequate runtime, it seems more than
adequate to just preempt the system "often enough" that your drivers
won't mess up PA's timing.
*No Canonical support on universe packages, right?

Getting down to the details, though, you are right about one thing.
Here's the config parameters for -rt:


CONFIG_HZ=1000
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT=y
# CONFIG_PREEMPT_DESKTOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_NO_HZ=y

This gives us forced preemption and 1000 Hz as desired, but the
detriments to running this particular kernel (2.6.27 on a system whose
official kernels are 2.6.28; realtime is overboard for most uses;
etc.) seem to outweigh its benefits.

>From purely an Ubuntu perspective, it seems like we need a -lowlatency
kernel again. This kernel would

*Use the same sources as the official Ubuntu kernels
*Ship all the same modules, including the -ubuntu-modules and
-restricted-modules
*Keep in sync with the -generic and -server kernels when patched
*Only differ from the -generic kernel by changing CONFIG_HZ=1000,
CONFIG_PREEMPT_* to make a fully preemptible kernel, and
CONFIG_DEFAULT_IOSCHED="cfq".

I'll file a feature request bug on Launchpad to see if we can
resurrect this kernel flavor... from the discussions here, it seems
that it would help. Users would rather be told "Install the lowlatency
kernel!" than "Change the .config and recompile the kernel!" or "Any
problems you run into with -rt are your own fault!"

Thanks,

Sean


>
> (There is a fourth kernel too: -virtual, which is optimized for running
> in a virtual machine, where the number of hardware to support is much
> lower than in real machines.)
>
> --
> Jan Claeys
>
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at mail.0pointer.de
> https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
>



More information about the pulseaudio-discuss mailing list