Announcement

Collapse
No announcement yet.

RIFS-ES Linux Kernel Scheduler Released

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Originally posted by 3766691 View Post
    Seems that there is no significant performance lost with tickless enabled.
    indeed,

    actually I don't seem to "feel" no performance hit right now - at all


    but the issue with tickless and high cpu-load still persists:

    top - 01:42:04 up 1:13, 3 users, load average: 0.34, 0.97, 1.95
    Tasks: 254 total, 1 running, 253 sleeping, 0 stopped, 0 zombie
    %Cpu(s): 0.0 us, 0.1 sy, 0.4 ni, 99.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
    KiB Mem: 8157664 total, 4885880 used, 3271784 free, 313284 buffers
    KiB Swap: 9437180 total, 0 used, 9437180 free, 2880232 cached

    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    26502 user 0 0 1358m 35m 21m S 165.7 0.4 16:02.70 audacious
    6878 root 0 0 231m 85m 18m S 33.5 1.1 25:13.02 X
    6464 root 0 0 16032 1700 292 S 19.6 0.0 2:08.18 irqbalance
    6997 user 0 0 21328 1832 608 S 14.9 0.0 1:36.40 dbus-daemon
    20553 user 0 0 2636m 162m 17m S 12.9 2.0 8:54.44 PDFXCview.exe
    7193 user 0 0 4253m 291m 53m S 12.3 3.7 26:27.91 chrome
    20562 user 26 0 12016 8876 1168 S 12.3 0.1 4:25.59 wineserver
    7082 user 0 0 264m 23m 10m S 9.0 0.3 3:46.58 applet.py
    30336 user 0 5 1236m 60m 22m S 8.6 0.8 2:05.95 CrRendererMain
    7236 user 0 0 1213m 41m 17m S 7.6 0.5 1:12.04 CrRendererMain
    7073 user 0 -11 429m 8872 6092 S 5.0 0.1 2:35.60 pulseaudio
    7408 user 0 0 1413m 41m 25m S 2.0 0.5 3:56.38 nautilus
    22935 root 23 0 40652 1756 1184 R 2.0 0.0 0:01.21 top
    is the output with RIFS even accurate ?


    in a few days I'll see how this affects battery life on the notebook



    is there much improvement in battery consumption with tickless (CONFIG_NO_HZ)

    compared to with ticks ?

    Comment


    • es_mode is excellent under load btw (at least for my workflow):

      e.g. updating system (compiling kde) and reading PDF files via PDF-XChange (wine) - the scrolling is smooth [accelerated smoothing has to be disabled otherwise there are graphical glitches]
      this with compiz-fusion enabled !


      with es_mode disabled - scrolling is stuttering A LOT ^^

      Comment


      • Originally posted by kernelOfTruth View Post
        es_mode is excellent under load btw (at least for my workflow):

        e.g. updating system (compiling kde) and reading PDF files via PDF-XChange (wine) - the scrolling is smooth [accelerated smoothing has to be disabled otherwise there are graphical glitches]
        this with compiz-fusion enabled !


        with es_mode disabled - scrolling is stuttering A LOT ^^
        I have decided testing a self-decaying model.

        Comment


        • Originally posted by kernelOfTruth View Post
          es_mode is excellent under load btw (at least for my workflow):

          e.g. updating system (compiling kde) and reading PDF files via PDF-XChange (wine) - the scrolling is smooth [accelerated smoothing has to be disabled otherwise there are graphical glitches]
          this with compiz-fusion enabled !


          with es_mode disabled - scrolling is stuttering A LOT ^^
          These days I have spent my time on EEVDF paper and the source code of BFS. Seems that BFS has designing problem and maybe relased to the hiccup of video you have mentioned before. BFS is a EDF scheduler actually because the VE key has been removed and can cause starvation on IO-bound task. The positive lag of a task can be O(n). When a task is just forked, the VE of a task value is the VirtualTime(VT) of the rq. Then the VirtualDeadline(VD) of the task is calculated base on thre VE. When a timeslice expired the VD will become the VE and the VD is being calculated base on the VE. Each time the scheduler will select a task which has the lowest VD to run on the CPU.Now the VD calculation in BFS is base on the real_time and loss the meaning of VE.By VD and VE, the scheduler can know that how urgent a task is and make sure the task is being scheduled fairly. The BFS scheduler doesn't have VE calculation and the VD in BFS cannot make sure that the task is being fairly scheduled.

          Comment


          • Rifs vs cfs & bfs for audio.

            Rifs seem to need hotpluggable cpus. For audio it is worse than regular scheduler. Needs more than 2ms latency here. Regular kernel does 1ms. BFS has overall a bit lower latencies, but stable audio streams is about 1ms there too. (click-free, and less jitter on lower latencies. 0.3ms almost doable on onboard audiocard, without RT-threads.) I also have done 0.3ms latency on firewire audiocard, with RT-threads, on regular kernel.

            Peace Be With You.
            Last edited by Paradox Ethereal; 29 September 2012, 05:20 PM.

            Comment


            • Originally posted by Paradox Uncreated View Post
              Rifs seem to need hotpluggable cpus. For audio it is worse than regular scheduler. Needs more than 2ms latency here. Regular kernel does 1ms. BFS has overall a bit lower latencies, but stable audio streams is about 1ms there too. (click-free, and less jitter on lower latencies. 0.3ms almost doable on onboard audiocard, without RT-threads.) I also have done 0.3ms latency on firewire audiocard, with RT-threads, on regular kernel.

              Peace Be With You.
              You also need to debug WHY that occurs though; problem with the scheduler, or problem with the audio layer?

              All schedulers have to try and handle two separate issues: Throughput and Bandwidth. The issue I've always had with "fair schedulers" is that while they do a good job of lowing overall latencies, they don't do well in terms of process Throughput, especially when lots of processes are running.

              The Windows scheduler actually does a decent job, once you understand Windows is NOT a real-time OS. In laymans terms: The process with the highest priority that is not I/O blocked will always run. A lot of done by the OS to adjust process priority (wait time, foreground/background, etc.), but all around, it ensures the highest priority tasks run without starving the rest out.

              Comment


              • There is a lot of people online who say "windows is good" "windows is better" "windows is more professional". When it comes down to actual fact, linux beats it in most departments. The only thing it has going is more software.

                And to say that the windows scheduler, or MS at all, is made with a sensible mind, I know very well is untrue. You remind me of people, who say, don`t tweak, don`t stop the services etc. There are so many of them! And yet if you do this, windows will perform much better. On linux, you talk about max 0.1ms difference if you turn off all the daemons ubuntu is runnning. On windows turning off services = a world of difference. Do you call THAT a good scheduler? And not only is it sensitive to small tasks running, but you have to set them all to idle priority, for cpu2 not to choke cpu1 at high load. And it`s been that way for years. Microsoft doesn`t have the mind to see it. And all these stupid error msgs and policies they implement, that only bloats the system. You can turn off 200 things, and your system will only get better. That is MS.

                Peace Be With You.

                Comment


                • Originally posted by Paradox Uncreated View Post
                  There is a lot of people online who say "windows is good" "windows is better" "windows is more professional". When it comes down to actual fact, linux beats it in most departments. The only thing it has going is more software.

                  And to say that the windows scheduler, or MS at all, is made with a sensible mind, I know very well is untrue. You remind me of people, who say, don`t tweak, don`t stop the services etc. There are so many of them! And yet if you do this, windows will perform much better. On linux, you talk about max 0.1ms difference if you turn off all the daemons ubuntu is runnning. On windows turning off services = a world of difference. Do you call THAT a good scheduler? And not only is it sensitive to small tasks running, but you have to set them all to idle priority, for cpu2 not to choke cpu1 at high load. And it`s been that way for years. Microsoft doesn`t have the mind to see it. And all these stupid error msgs and policies they implement, that only bloats the system. You can turn off 200 things, and your system will only get better. That is MS.

                  Peace Be With You.
                  Note you are totally focused on LATENCY, and not THROUGHPUT. The Windows scheduler is essentially priority based: The highest priority thread that is not I/O blocked is ALWAYS run. Period. Now, Windows does a LOT behind the scenes to dynamically adjust priority, but at its heart, its a priority based scheduler. So if you have 100,000 low priority tasks running and one high-priority task, guess which one is getting the most CPU time? (This is especially notable on Vista/7, where foreground tasks get a priority boost over background tasks. As a result, you don't see system services making as big an impact as they did on XP).

                  On a scheduler that focuses on latency however, those 100,000 low priority tasks are going to ensure that one high-priority task takes a LOT longer to actually finish. But hey, you get 0.1ms latency across the board!

                  Windows is not a real-time OS, and has never been intended for that use. The Windows scheduler is designed to maximize throughput, not minimize latency.

                  Comment


                  • I have optimized both systems. To say that windows is focus on throughput vs latency is wrong. You can do that much more agressively with linux.

                    What I am interested in, is however desktop experience, and smoothness of animation, instantness of sound, and general good interactivity. This is what made assemblyprogrammed computers popular. Imagine if you had a highlevel system in 1993 that had 100ms latency on sound. Oh yes, that was windows. LOL. It was ridiculed. Ever since, the latency has dropped, and computers got faster. But the feel of many asm/hw computers is what many miss. Some say consoles do that today ofcourse. But still if you have low latency on a computer, say max latency below 0.2ms it is going to be like hardware. Average latency is already there on linux, but max latencies are about ~1ms. Which is quite good though. On windows you can also do ~1ms latency, with a minimal system, minimal drivers, services etc. And performance in games will be much better.

                    So even if you are wrong about windows being focused on throughput, with low latency tweaked windows, it still has better THROUGHPUT for most users. With high latency all you get is chopping, lost frames, lost performance.

                    Peace Be With You.

                    Comment


                    • Originally posted by Paradox Uncreated View Post
                      There is a lot of people online who say "windows is good" "windows is better" "windows is more professional". When it comes down to actual fact, linux beats it in most departments. The only thing it has going is more software.
                      I use Linux full time and doesn't use Windows anymore.
                      But Windows got great stuff.

                      Visual Studio beats any other IDE out of the water.
                      .NET framework is comprehensive and awesome.
                      C# is great.
                      Active Directory and Group Policy are great.
                      Then there is DirectX with graphics, audio, input handling, network, etc.

                      Windows 7 is very stable. WDDM is great.
                      You can change device driver or reload drivers without even logout and the drivers can do all cool stuff that you cant on Linux.

                      Comment

                      Working...
                      X