Jump to content

Preemptive Kernels -- yay or nay?


nggalai
 Share

Recommended Posts

Hi there,

 

had some rather heated discussions about whether a "desktop" Linux box profits from a Kernel compiled with preemptiveness. Current Mandrake kernels, for example, aren't compiled with "preemptive." Some Gentoo users among my friends label this to be one of the prime reasons why, quote, "Mandrake sucks" end quote.

 

Now, the funny bit is that those people I talked to who are a tad more technically minded claim that a "preemptive" Linux kernel won't do any good on a system that's not used as, say, an I/O monster / real-time application server etc..

 

I myself decided to just give it a shot and I'll recompile my current kernel with preemptive on, next week-end. I'll hold my verdict till then.

 

Now--what do you think? Is preemptiveness an overhyped feature, for the "general" Linux user, or a must-have?

 

93,

-Sascha.rb

Edited by nggalai
Link to comment
Share on other sites

tell your friends who say "Mandrake sucks" that the mandrake multimedia kernel does infact have preemptiveness compiled in. i believe the multimedia kernel is usually in contrib, but it exists nonetheless.

 

they are correct, however, in that the -default- mandrake kernel does not come with this.

 

but, responding to your question, I think preemptiveness is good if you are doing certain types of things - watching a lot of movies, playing some resource-intensive games, etc.

Link to comment
Share on other sites

tyme,

 

I already did tell them that, even though the MM kernels are some releases behind, usually. ;) That's not really the topic, anyway. My thoughts / questions:

 

Quite a few people swear by preemptive kernels. Some even diss distributions which don't enable it by default in all their kernels. On the other hand, apparently there are good reasons NOT to have a preemptive kernel--otherwise, e.g. MDK wouldn't ship their default kernels without preemptiveness enabled. My question is simply: Why this discrepancy? What does a preemptive kernel give Joe Average running a linux box, or what are the drawbacks that make some distros disable the feature for standard installations?

 

93,

-Sascha.rb

Link to comment
Share on other sites

What gets better than what I have today, if I get a preemptive kernel?

 

For watching movies, with my hardware, I cannot imagine it can get better, in terms of responsiveness. Dito with may other things. I just can't be bothered.

 

However, for audio recording I can imagine it would make some difference. Ah well.

Link to comment
Share on other sites

Now--what do you think? Is preemptiveness an overhyped feature, for the "general" Linux user, or a must-have?

Yes, it is highly overrated. Not so much in it's early days of the 2.4.16 kernel but now, yes. Absolutely bites with every 2.6 kernel and every distro I've run it on (4 distros), and I think that's the main reason ml steers clear for a default kernel. ML's focus is the 2.6 kernel which has many other optimizations in it by default that are tried and tested and they just don't work well together in the 2.6.

Why this discrepancy?
same with supermount.....people just making assumptions based on hear_say, shooting off their mouth, whatever. It's another way to bring up the fact that your doing something the average joe isn't. You're special. Whahoo, whatever.

 

What's it good for? I don't know.....I don't do digital_audio_recording or anything.

Link to comment
Share on other sites

would it enable me to do other stuff while compiling...other stuff (like kernels) or can I do that now with normal mandrake kernels?

 

not so long ago I was part of this so-called multi-tasking OS which I knew would crash when I ran too many apps.

 

Its probably unwise to run so many experiments on my *only* computer, but I have no other option...if anyone's willing to donate a "test" system it's welcome. :cheesy:

Link to comment
Share on other sites

DUH....

Theres an easy answer!!!

If Linus hasn't approved it then its NOT strictly part of the linux kernel, end of discussion!!!

 

The real prob with Mandrake kernels is that they seem to be undocumented and have no source code or at least the source makefile doesn't make the same kernel .....

 

Before anyone flames me then ....

OK, what is the enterprise kernel .... etc. We all know it supports 4GB HIMEM.... what else..... ?????

 

Same with kernel-m. We know it does preemptive etc. BUT try finding EXACTLY what any Mandrake kernel is and your in for a hard time.

 

Theoretically you should be able to take any vanilla kernel and end up fter applying patches etc. with the SAME compiled kernel as Mandrake produce in the distro.

You can't.... becuase you don't know what the .configure is!

 

As far as I can tell all we can do is speculate about whats in andrake kernels!!!

Link to comment
Share on other sites

But you get the .configure, no? I mean, with the kernel source rpm?

(honest question, haven't compiled a kernel in 2 years)

(Hey is my machine that old? time for a new machine..? Oh no, I was going for a laptop... amd64?..)

 

BTW preemptive will not really make your cpu run faster, it may give you the impression that the system is faster since it should respond to user threads quicker. The total amount of data processed and programs run will still cost the same amount of CPU cycles.. The more you do during compilation, the longer you have to wait for it to finish..

Link to comment
Share on other sites

DUH....

Theres an easy answer!!! 

If Linus hasn't approved it then its NOT strictly part of the linux kernel, end of discussion!!!

We're not talking about the linux kernel. Linus has no bearing on mdk kernels. Supermount? DevFS? Linus wasn't/isn't exacly thrilled with them, and he's not big on symlinks either but...... :D

Theoretically you should be able to take any vanilla kernel and end up fter applying patches etc. with the SAME compiled kernel as Mandrake produce in the distro.

You can't.... becuase you don't know what the .configure is!

If running a 2.6 -->/proc/config.gz
or at least the source makefile doesn't make the same kernel .....
I had that happen once 2 years ago....but not since :unsure:
Link to comment
Share on other sites

would it enable me to do other stuff while compiling...other stuff (like kernels) or can I do that now with normal mandrake kernels?

 

not so long ago I was part of this so-called multi-tasking OS which I knew would crash when I ran too many apps.

 

Its probably unwise to run so many experiments on my *only* computer, but I have no other option...if anyone's willing to donate a "test" system it's welcome. :cheesy:

Hi there,

 

you won't need a preemptive kernel for that. Try this:

 

http://www.mandrakeusers.org/index.php?act...indpost&p=96447

 

Watching a movie trailer, ripping CDs, compiling Window Maker, run a tar/gz backup tool, all at the same time? No problem. If I hadn't that CPU load appicon in my dockapp, I wouldn't even realise my computer was sweating. No hitch while surfing.

 

As far as I am concerned, pre-emptiveness really is meant for realtime apps only. But I'll see come next week-end; perhaps I'll convert. ;)

 

93,

-Sascha.rb

Edited by nggalai
Link to comment
Share on other sites

But you get the .configure, no? I mean, with the kernel source rpm?

(honest question, haven't compiled a kernel in 2 years)

(Hey is my machine that old? time for a new machine..? Oh no, I was going for a laptop... amd64?..)

 

BTW preemptive will not really make your cpu run faster, it may give you the impression that the system is faster since it should respond to user threads quicker. The total amount of data processed and programs run will still cost the same amount of CPU cycles.. The more you do during compilation, the longer you have to wait for it to finish..

You get A .configure. It most certainly isn't the one Mandrake used for thier kernel with the same name though.

 

For a start all the Mandrake kernel sources I have tried have the extra-version tag set to custom.

 

Ive compiled a 2.x kernels meant to be identical to the ones of MDK using thweir source RPM's including the .configure.

 

IMHO ...

urpmi kernel-source-2.x.x-mdk-ver ; cd /usr/src/kernel-source-2.x.x-mdk-ver; ./configure ; make ; make modules ; etc. .... SHOULD produce an identical kernel to the one I get with

urpmi kernel-2.x.x-mdk-ver

 

end of story ... even if the only difference were the extra version tag its dishonest . source should be source!!!

 

However experience leads me to believe that it isn't just the tag which is changed. My compiles have come up with symbol errors etc. which happen when inserting moduules that dont happen when using the MDK compiled kernel.

 

 

The reason I say dishonest is I believe MDK is making some 'secret' optimisations. Why else does MDK test faster than gentoo in that old test ??? MDK lead you to beleive that the source is their source BUT they dont actually EVER SAY it.

Like I say, ANYONE.... tell me what is in the enterprise kernel OR mm kernel....

 

HOW do you know ??? where is it written ???

Link to comment
Share on other sites

Gowator, take off the thin foil hat there a bit...

:P

 

How would it be possible to make extra kernels, like the TB kernels?

 

 

MDK was faster than gentoo because there really isn't that much difference between athlon and 586, and Mandrake had used different patches for kde and a different kernel.

Link to comment
Share on other sites

if you recompile the kernel srpm you get the same kernel.

so you could download the srpm and look at its spec file to find out how and what Mandrake did.

 

most of it is also documented in the RPM changelog.

 

and BTW the kernel config was usually found under /boot/config AFAIK using that to configure your kernel would produce a clone of mandrake kernel.

 

cheers,

Alaa

Link to comment
Share on other sites

if you recompile the kernel srpm you get the same kernel.

Do you ?

 

Thats what I thought so how come it comes up as -custom ???

If the kernel name isn't the same its not the same ....

 

 

I spent days playing about trying to compile the SAME kernel as Mandrake from the sources ..... thge only difference was I wanted 4GB HIMEM.

 

After wasting DAYS I still get symbol not found ....

I even edit out the -custom ... and still get kernel not found

What am I meant to think, whenever I compile it I get missing symbols, when Mandrake use the SAME MAKEFILE they don't ???

 

How is this possible if it is the SAME ???

 

Honestly, someone tell me what is in the multimedia kernel ??? or enterprise kernel.

Don't tell me its documented provide a link becuase I can't find it. All I get are vague statements .....

Link to comment
Share on other sites

Actually whenever I compile a kernel, I use Mandrake's config file, even if it's for a vanilla kernel.

 

I get lots of "missing symbol" LIRC, souncards, etc that I don't really use. I just open xconfig and re-save the thing. However it's a glimpse into the differences between Mandrake's and vanilla kernels.

 

Supermount is one, but I got a substitute patch that works just as well. I also patch some bootsplash of my own, but I'm still trying to get it to work. Mandrake has good programmers, but it's a really long leap of intuition if we start to suspect that they secretly modify parts of their kernel. Would they really waste that much effort? :unsure:

 

And anyway, their kernel has too many hardware drivers, "bloat" but still required since they're aiming for the "ease of use" market. B)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...