After installing Ubuntu Studio 12.04, I found that it uses a low latency kernel. I searched why and how to change back to a realtime or generic one. But looks like this part of Linux hasn't been covered so much.

Q: Why choose a low latency kernel over a generic or realtime one?

PS: I have already read the answers from this question and this post.

  • 4
    +1 because it must be a pretty good question if everyone's stumped. I STILL don't know the difference between the low-latency, generic, and realtime kernels. If -realtime is realtime, then what does -rt stand for? And what's up with the -preempt kernel? I will thank gemue2010, he did a pretty good job explaining it, but it still doesn't explain everything. – Hitechcomputergeek May 21 '15 at 1:55

These are some simple guidelines provided to help you understand which kernel, and in which order, you should test to fit your use case.

  • If you do not require low latency for your system then please use the -generic kernel.
  • If you need a low latency system (e.g. for recording audio) then please use the -preempt kernel as a first choice. This reduces latency but doesn't sacrifice power saving features. It is available only for 64 bit systems (also called amd64).
  • If the -preempt kernel does not provide enough low latency for your needs (or you have an 32 bit system) then you should try the -lowlatency kernel.
  • If the -lowlatency kernel isn't enough then you should try the -rt kernel
  • If the -rt kernel isn't enough stable for you then you should try the -realtime kernel

Ubuntu Help Source

So it depends on what you will do with your studio distro. For most users needing fast end-user response time generic will just do fine, for others who need to do professional video editing where even a simple frame drop is unacceptable the real-time kernel is needed.

For a more exhaustive easy-to-understand blog post, read this link

  • 1
    I already read the previous article you posted. About the second, how much are those facts reliable? – Starx Apr 28 '12 at 3:30
  • Well the tests mentioned there talks by themselves. If Ubuntu team have chosen Latency in the first place, it must be a reason to it. SO you wanted to know the differences, now you do. Problem solved ? – ubuntu fan Apr 28 '12 at 3:50
  • 5
    No.. I dont think the problem is solved. If your answer does anything, it increases my curiosity more. – Starx Apr 28 '12 at 4:09
  • 10
    Is any of this still true in 2015? The -preempt, -rt, and -realtime kernels no-longer exist – naught101 Sep 21 '15 at 23:29

I'm the author of the blogpost linked by ubuntu fan: http://sevencapitalsins.wordpress.com/2007/08/10/low-latency-kernel-wtf/

That blog post doesn't present any fact, it's only theory. It's the way it works, actually: the processor "stops" more frequently to see if there are some processes requiring immediate attention. That means that those processes will be executed before the others, so you won't skip frames when encoding, or have huge delay times between mouse clicks and enemy deaths. It doesn't mean that all processes will end sooner: actually the CPU is losing a bigger portion of its time deciding what process will be executed next, and doing the context switch. So the total execution time is longer, and that's why no one runs a preemptible kernel on webserver or database machines. But a preemptible 300Hz (or even 1000Hz) kernel is the best for gameservers.

But nowadays processors have many cores, so when there are few processes requiring attention they can easily be allocated on a different core rather than waiting for a core to take it.

(stackexchange requires me references/personal experience: I'm an electronic engineer, bloodthirsty noobgamer mantaining several gameservers at http://www.gamezoo.it ).

So, as a rule of thumb, I'd say: if your processor is a powerful number-crunching high-frequency quad-core AND you don't usually open tons of webpages while encoding/decoding/gaming (huh), you could just try the generic (or i686, or amd64 if they exist) kernel and have the highest possible throughput (i.e., the raw number-crunching the processor is able to do). If you experience problems (they should really be minor) or your machine is slightly less powerful than the top of the market, go for the -preempt.

If you're on a low-end machine that has only one or two cores, then try the -lowlatency. You could also try the -realtime, but you'll find that it tends to block processes until the "real-time" ones have finished their job. I believe the realtime kernel isn't the "vanilla" one, but has the CONFIG_PREEMPT_RT patch applied. I think that realtime kernels are only for those who have to build a single application on embedded systems, so usual desktop users shouldn't have real benefits because they usually run a fair number of applications at the same time.

Finally, the most relevant kernel options if you want to recompile your kernel yourself to have a low-latency desktop are:




To add some powersaving you may check this one:

  • I noticed you mention maintaining servers, I'm trying to figure out the best kernel for valve source dedicated server (CSGO specifically). most CS threads I find are related to goldsrc which needed 1000Hz kernel. With srcds, is lowlatency bad? if it doesn't matter I'll just stick to lowlatency as that's what I have right now (I isolate the cpu cores for 128 tick srcds servers as it doesn't really benefit from multi threading anyway). – Vincent De Smet Apr 11 '14 at 20:42
  • Useful to know thid tips, I will totally change to preempt. I'm not in such a hurry thay I want my kernel yo act like a filthy pirate. – userDepth Apr 7 '16 at 13:53

From the document cited above (http://www.versalogic.com/mediacenter/whitepapers/wp_linux_rt.asp)

  1. a soft real-time system will give reduced average latency but not a guaranteed maximum response time.
  2. A hard real-time system meet the desired deadlines at all times (100 percent), even under a worst-case system load.
  3. According to Yaghmour [4], "Real-time deals with guarantees, not with raw speed."

The article says for hard realtime kernel responsiveless or time bound is most important property so sometime they delay non critical activity that lead to delay but for lowlatency or other soft real time kernel try to reduce general latency which helps in most of case. Due to reduced latency the system seem to be fast. Read the article carefully.

  • That’s true but we need to know which kernel variant matches which real-time system “hardness”. – Melebius Nov 10 '15 at 13:57

I have this old laptop with dual AMD A6-4400M at 1600MHz, that I use sparingly when I'm out of the office, mainly to read email and browse casual web sites. There was something, possibly connected with software updates, which makes it unresponsive. Something like typing a dozen characters without seeing the first one. Often the widget asking whether I should force-quit a process.

After sudo apt-get install linux-lowlatency and reboot, it became smooth and responsive. (uname -r 5.0.0-20-lowlatency.) Wonderful, I should have switched years ago. Let me stress Seven's answer: unless you want to squeeze the max out of a number crunching server, go for the -preempt!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.