Slashdot Mirror


Significant Interactivity Boost in Linux Kernel

An anonymous reader writes "The Linux kernel team is at it again. Linux creator Linus Torvalds recently proposed a patch to offer interactive processes a boost, greatly benefiting the X desktop, as well as music and movie players. O(1) scheduler author Ingo Molnar merged Linus' patch into his own interactivity efforts, the end result nothing short of amazing... The upcoming 2.6 kernel is looking to be a desktop user's dream come true."

14 of 608 comments (clear)

  1. X11 Beh. by SirDrinksAlot · · Score: 3, Interesting

    Im sorry, its not the kernel that makes a desktop OS what it is, its the userinterface on top. Linux isnt going to be truely Desktop friendly untill X11 gets replaced with something that doesnt completely suck. You shouldnt need a high end video card to make X11 nice and smooth or have to use a stripped down UI. If Linux wants to set it self apart from all the other OS's its going to need its own desktop engine. I do agree that the 2.6 kernel is going in the right direction, I just belive the rest of the OS is being left really far in the past.

    My 2 1/2 cents Canadian

  2. Re:Actually... by oliverthered · · Score: 3, Interesting

    I'm not so sure, 2.5.54 is far slicker on the desktop than 2.4.x (about as responsive as windows, even without dri).
    If this patch is causing great excitement, then I can only assume linux is now more responsive on the desktop than windows.

    Now, if only supermount was in the 2.5 kernel tree........

    --
    thank God the internet isn't a human right.
  3. explanation needed, please by dj_paulgibbs · · Score: 3, Interesting

    Now, I am a long-time user of Windows, but am (and have been always) increasingly tempted by switching to a Linux-based distribution, probably Redhat, on my main desktop machine.

    With that lack-of-linux-knowledge, could someone explain why precisly this is a "Significant Interactivity Boost in (the) Linux Kernel"? Thank you.

    1. Re:explanation needed, please by The+Bungi · · Score: 3, Interesting
      I think the logic goes like this:
      • Linux was a "better" desktop than "Windoze"
      • But the scheduling system on top of which the X server runs kinda sucked, so in reality Linux wasn't such a great desktop
      • "Windoze" has the graphics subsystem "in the kernel" (not true, but still) and that's "bad". Linux uses a different approach (X is a client/server graphics system) that is considered "good" and not "unstable" and not as "sneaky" as "Windoze"
      • Now someone has come up with a way to make the Linux GUI more responsive.
      • So now Linux will be a better desktop than "Windoze".
      • Slashdot readers are predicting Linux will take over the desktop Any Moment Now.
      Apply to some other technical area where Linux is "better" than "Windoze" - lather, rinse, repeat in a few months.
    2. Re:explanation needed, please by rseuhs · · Score: 3, Interesting
      Running RedHat on a desktop is like running a rackmount as a desktop.

      It can be done, but it's awkard.

      Try SuSE, you get a good desktop and (gasp) consistent config tools in one place. Or try Mandrake, you get the latest desktop and good config tools. Or try Debian, you get an ultra-stable system that can be easily upgraded. Or try Gentoo, you get a faster system on the bleeding edge.

      Just use a real KDE 3.1 on a non-RedHat distribution and you will never look back at MS Windows.

  4. Doesn't work for me by Anonymous Coward · · Score: 3, Interesting

    Except that doesn't work if the X app is being displayed locally but run remotely. Or at least it doesn't seem to.

    Well, okay. Look. I just opened up my X server here on my mac os X box, sshed with X tunneling to my university's Solaris box, opened up xchat, selected some text, and attempted to paste it into a nearby xterm. Oh, hey, guess what, didn't work. I tried what you said. I selected some text, i clicked on the xterm, i tried middle-clicking and right-clicking. Nothing there. Care to tell me what i'm doing wrong?

    Anyway, the whole select-to-copy thing is HORRIBLE GUI design. What if you want to select something in order to edit it without *blowing away* the clipboard? What if your hand slips and you select a couple letters of text by accident before you can paste something important into its destination? I, personally, have intense problems with the copy-paste thing because at some point i picked up the stupid habit of often scrolling by selecting text and dragging off the edge of the window, which will obliterate the textboard. And, worst of all, there's that nagging little question: let's say i'm editing a file, and i want to select some text in the part of the document i'm editing, "cut" it, scoll up to the top of the document, delete part of a paragraph, write a couple lines, and then paste what i just cut. What X's copy/paste means is that i must select the text i want to move to copy (making sure not to delete it yet, becuase it would be too easy to accidentally select text and copy over what i've written, losing it forever), scroll up, click where i want it to go, paste, and then delete and rewrite the text around it, scroll back down, and then delete the text i copied. Yeah, way to go on making the interface fit the needs of the user. Dammit.

    And then there's the fact that, still, mostly due to the broken silliness of X copy&paste, most applications don't quite work the same, becuase they've all fucking implemented the clipboard in nonstandard ways because those unstandard ways are "better". Which they are, unless for some silly reason you want to copy and paste between applications. We've got the "clipboard" and the "cut buffer" and i don't know what either means, and lately some GNOME apps and such have taken to signing up with a sane (i.e., "copy" and "paste" are commands, and as such require a menu use or a key combination). And then vim has like its ten little internal clipboards, and emacs has some clipboard system i don't even pretend to know the first thing about, and i mostly use vim as my text editor in unix. And none of these apps i've ever seen give the option of choosing which copy/paste behavior you want: i mean, none of them will give you a nice little preference that says "select to copy" vs "select 'copy' from menu to copy" vs "have ten little internal cycling cut buffers with some arcane method of manipulation". And i still don't know how copy/paste within vim is supposed to interact with other X apps. I'd test it right now, but for some reason still unknown to me, i can't get gvim to run over my ssh-tunneling setup. When i try, it says:

    X11 connection rejected because of wrong authentication.
    XIO: fatal IO error 32 (Broken pipe) on X server "localhost:13.0"
    after 0 requests (0 known processed) with 0 events remaining.
    The connection was probably broken by a server shutdown or KillClient.


    Maybe it doesn't like my MIT magic cookies, or something? But I digress. Face it. Copy and paste is still the most broken thing about X, and that's saying a lot. And maybe i'm just dense, but i still can't figure out how to change my X keyboard mapping on these silly Solaris boxes.

    -- super ugly ultraman

  5. for all you... by Anonymous Coward · · Score: 5, Interesting

    bashing linux/x/kde/whatever speed, I'm willing to bet you've never doen a full build (ala Gentoo) and actually optimized it for your system...have you? KDE 3.1 is as fast or faster than windows XP on my 1ghz box...it took a while to build, but it's well worth it.

  6. Re:FINALLY! Thank you! by yamla · · Score: 3, Interesting

    I am curious... which GUI do you use in Linux? What speed processor and how much RAM do you have? Which distribution (or kernel) of Linux do you use?

    I ask because it has been my experience that Linux is already considerably more responsive (in terms of GUI performance) than Windows. I use KDE 3.1 with Linux 2.4.20 and I have 512 megs of RAM and a 1.46 Ghz processor.

    Now, least people accuse me of trolling (or of pandering to the Linux crowd), I should point out that I am not sure why Windows is so unresponsive. It seems to have something to do with hard drive access. It seems to me that Windows XP is acting like I'd expect it to if I didn't have DMA enabled for my hard drives. Basically, whenever I access the hard drive, the GUI becomes almost completely unresponsive, sometimes taking almost a minute to fire up even a browser. I have checked, though, and I do have DMA enabled.

    So I truly do not know what is going on with Windows, but in Linux I just don't have these problems. Under heavy disk access, it may take a few seconds to fire up a browser in Linux, but that's it. MP3s keep playing, my apps are still responsive, etc. etc.

    --

    Oceania has always been at war with Eastasia.
  7. Re:huh? by arvindn · · Score: 5, Interesting
    Kernel Dev's Gone Wild volume 3

    Well, here is Linus replying to Molnar's post:

    From: Linus Torvalds
    Subject: Re: [patch] "HT scheduler", sched-2.5.63-B3
    Date: Thu, 6 Mar 2003 09:03:03 -0800 (PST)

    On Thu, 6 Mar 2003, Ingo Molnar wrote:
    >
    > the whole compilation (gcc tasks) will be rated 'interactive' as well,
    > because an 'interactive' make process and/or shell process is waiting on
    > it.

    No. The make that is waiting for it will be woken up _once_ - when the
    thing dies. Marking it interactive at that point is absolutely fine.

    > I tried something like this before, and it didnt work.

    You can't have tried it very hard.

    In fact, you haven't apparently tried it hard enough to even bother giving
    my patch a look, much less apply it and try it out.

    > the xine has been analyzed quite well (which is analogous to the XMMS
    > problem), it's not X that makes XMMS skip, it's the other CPU-bound tasks
    > on the desktops that cause it to skip occasionally. Increasing the
    > priority of xine to just -1 or -2 solves the skipping problem.

    Are you _crazy_?

    Normal users can't "just increase the priority". You have to be root to do
    so. And I already told you why it's only hiding the problem.

    In short, you're taking a very NT'ish approach - make certain programs run
    in the "foreground", and give them a static boost because they are
    magically more important. And you're ignoring the fact that the heuristics
    we have now are clearly fundamentally broken in certain circumstances.

    I've pointed out the circumstances, I've told you why it happens and when
    it happens, and you've not actually even answered that part. You've only
    gone "it's not a problem, you can fix it up by renicing every time you
    find a problem".

    Get your head out of the sand, and stop this "nice" blathering.

    Linus
    OK, maybe not gone wild as in baring their breasts, but certainly gone wild as in no-holds-barred flamage :)
  8. Re:huh? by Sarcazmo · · Score: 3, Interesting

    As someone who has had XMMS skip ever since I went to Red Hat 8 (and the newer versions of the lowlatency patches), I can agree with Linus. The screwed up thing is that even renicing X doesn't help, the kernel takes it upon itself to give it the priority back behind your back.

    Red Hat- Because being a beta tester for kernels is cool!

    (I love red hat, I just think AC takes some big risks with the RH kernel wrt controversial patches)

  9. Linus discovers priority inversions by Animats · · Score: 5, Interesting
    What's being described here is called a priority inversion, where a high-priority task makes a request of some service running at a lower priority and gets hung up behind it. Real-time programmers have been dealing with this for decades, with varying degrees of success. A priority inversion bug caused problems with the Mars Pathfinder mission, and had to be patched remotely.

    There are various solutions to this problem. It sounds like the Linux kernel people are trying priority inheritance via the messaging system (local sockets). QNX has had that for over a decade. Because QNX does almost everything, including all I/O, by message passing, it has to do this right. In the UNIX world, message-passing was added quite late, in BSD, and X is one of the few interactive programs that uses socket communication on the local machine. Sockets are used mostly to talk across the network. So support for time-critical local sockets isn't very good. UNIX pipes were the original UNIX interprocess communication mechanism, and they were intended as batch-like devices. Sockets look, and work, a lot like pipes. This legacy is the real cause of the problem.

    Of course, the reason Linux users actually want this feature is so that they can play their pirated MP3s in the background while using X-windows.

  10. Re:Simply More Evidence by WNight · · Score: 4, Interesting

    Not quite right. Every multi-tasking system since the first few in the 70s has had the concept of running interactive apps with a higher priority. It's a very obvious improvement.

    The non-obvious improvements are things like making the applications that depend on, or are depended on, by the interactive app, run faster. There are also additional tweaks to this that that are being considered such as giving interactive programs a smaller time-slice, but more of them, so it'll do things like paint the windows properly in respose to your movements, but it won't bog the rest of the system down.

    Technically, scheduling tweaks do add to code complexity, but only in such a tiny way. Linus's patch was five lines. And Linus is very concerned with making sure patches are self-contained and, when possible, aren't spread out, a few lines in many different areas. He's got a very good, very "correct" attitude about design. It comes from him being happy with Linux for years now, he's not rushing to any specific point so it becomes useful. He's willing to put the time in to do it right.

    Anyways, this is to say that most kernel patches don't lead to complexity, most decrease the complexity of the code. Linus has often sent patches back to be done the "right way" instead of allowing a hack. This tweak is so small and self-contained that it can't really be said to add complexity to anything.

  11. Re:FINALLY! Thank you! by Trolling4Dollars · · Score: 5, Interesting

    This example perfectly illustrates what linus was having problems with when Ingo suggested that users just nice X up. It hides the problem, but doesn't actually fix it. Windows XP plays tricks on users to make them think that it's faster than Win2K or even NT. It loads the GUI earlier than the previous OSes, but there is still a lot of shit happening on the system in the background when you first get to the desktop (services starting, background apps loading, etc...). This is what causes the delay in response to clicking on the Start button. To prove this to a friend with Linux, I set X to start up a lot earlier and disabled a few of the non-critical services in the init scripts and compiled a custom kernel. Total APPARENT boot time from "Joe User's" perspective was about 30 seconds. I have to wonder if it would be a hell of a lot faster with this new patch. The thing is that these changes DON'T actually make the system faster at all. It's pretty much the same as before, but the end-user experience is that it APPEARS faster. That seems to be what a lot of people miss in this discussion.

  12. Re:If Linux drops X11 by Trelane · · Score: 3, Interesting

    Horse hockey. I have.

    Lower-end stuff (e.g. xterms) run slower over a dialup link (I'm sure I'm not even getting 40-50 kbps here), but it's entirely usable, particularly if I've been using it for a little while. Netscape 4 was lousy. I just tried it. I'm at 16-bit colour, BTW.

    Back when I had a cable modem (before I moved to a place where they said I'd have a cable modem by the end of last year. hah!), which was capped at 3Mbps, I ran Mozilla 1 over the cablemodem, over a long distance (they hadn't hooked in to KANREN, so my traffic to the university went from Manhattan, KS through Manhattan, NY and back) from my older Ultra10 workstation (It had, I think, just been upped to 256MB RAM), displaying on my Debian (XFree 4? Or was it still 3?) PII 400 w/ 512 MB RAM, and it ran just fine. I don't recall it being substantially slower than local. I was either running 16bit or 24bit depth. Quite possiby 24bit, since I wasn't trying to run many games then (I made it 16bit for games over winex).

    Oh, did I mention that those were over an encrypted connection? (ssh X11 tunneling)

    Heck, the university used Sun IPX/IPC with Linux as thin-clients, displaying from a couple of (actually fairly crummy IIRC) central servers. It was pretty usable, too.

    Slow at 100Mbit my ass.

    And, according to www.ncl.cs.columbia.edu/publications/cucs-022-00.p df, Microsoft Terminal Svcs is only able to do 8 bits (256 colors). Is that still accurate?

    --

    --
    Given enough personal experience, all stereotypes are shallow.