Announcement

Collapse
No announcement yet.

RIFS-ES Linux Kernel Scheduler Released

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

  • #91
    Originally posted by bug! View Post
    with
    rifs-kernel3.5.x RIFS-SCHEDULER-3.5.x Offical 7 hours ago 7 hours ago 179 KB 6

    kernel/exit.c: In function ‘__exit_signal’:
    kernel/exit.c:148:32: error: ‘struct task_struct’ has no member named ‘se’
    make[2]: *** [kernel/exit.o] Error 1
    make[1]: *** [kernel] Error 2
    My LCD monitor is out of work. I am just going to post the hotfix for it until I have got my monitor back.

    Posted. Download it here: http://rifs-scheduler.googlecode.com/files/sched.h and replace the original one at /linux-3.5/include/linux/
    Last edited by 3766691; 08-10-2012, 02:16 PM.

    Comment


    • #92
      with "RIFS-ES-SCHEDULER-3.5.x Hotfix For RIFS Offical Emergency" the kernel compiles without errors
      but rsyslogd fails on boot (similar to https://code.google.com/p/rifs-sched...es/detail?id=2)

      root@tux:/var/log# rsyslogd
      Error during class init for object 'rsyslog runtime' - failing...
      rsyslogd initializiation failed - global classes could not be initialized.
      Did you do a "make install"?
      Suggested action: run rsyslogd with -d -n options to see what exactly fails.
      rsyslogd run failed with error 22 (see rsyslog.h or try http://www.rsyslog.com/e/-22 to learn what that number means)

      Comment


      • #93
        Originally posted by bug! View Post
        with "RIFS-ES-SCHEDULER-3.5.x Hotfix For RIFS Offical Emergency" the kernel compiles without errors
        but rsyslogd fails on boot (similar to https://code.google.com/p/rifs-sched...es/detail?id=2)

        root@tux:/var/log# rsyslogd
        Error during class init for object 'rsyslog runtime' - failing...
        rsyslogd initializiation failed - global classes could not be initialized.
        Did you do a "make install"?
        Suggested action: run rsyslogd with -d -n options to see what exactly fails.
        rsyslogd run failed with error 22 (see rsyslog.h or try http://www.rsyslog.com/e/-22 to learn what that number means)
        I will start finding the reason of why rsyslogd failed(including my box, but I don't use rsyslogd at all) after few days(or even longer). In this month I am busy.

        Comment


        • #94
          Some users reported that the RIFS kernel cannot be compiled with Tickless option.
          Can anyone describes about this issues? I can compile the kernel with Tickless.

          Comment


          • #95
            Originally posted by 3766691 View Post
            Some users reported that the RIFS kernel cannot be compiled with Tickless option.
            Can anyone describes about this issues? I can compile the kernel with Tickless.
            I'll see if I can find some time and try compiling the kernel with tickless

            really would like to use RIFS on a laptop but tickless plays an important role

            PowerTOP version 1.13 (C) 2007 Intel Corporation

            Cn Avg residency P-states (frequencies)
            C0 (cpu running) ( 5.4%) Turbo Mode 0.0%
            polling 0.0ms ( 0.0%) 2.81 Ghz 0.0%
            C1 mwait 0.6ms ( 0.2%) 2.67 Ghz 0.0%
            C2 mwait 0.7ms ( 1.4%) 2.54 Ghz 0.0%
            C3 mwait 0.6ms (93.0%) 1200 Mhz 100.0%

            Wakeups-from-idle per second : 1479.0 interval: 10.0s
            no ACPI power usage estimate available

            Top causes for wakeups:
            92.7% (8010.2) RIFS
            6.6% (569.6) [extra timer interrupt]

            0.1% ( 12.3) [radeon] <interrupt>
            this is from the desktop I'm currently using RIFS on


            thanks

            Comment


            • #96
              this is with genkernel failing:

              genkernel --makeopts="-j1" --luks --lvm all --kernname=3.5.3_libata_btrfs+_V2_corei7_TL --no-clean
              * Gentoo Linux Genkernel; Version 3.4.27
              * Running with options: --makeopts=-j1 --luks --lvm all --kernname=3.5.3_libata_btrfs+_V2_corei7_TL --no-clean

              * Linux Kernel 3.5.3_libata_btrfs+_V2_corei7_TL for x86_64...
              * kernel: --mrproper is disabled; not running 'make mrproper'.
              * kernel: --oldconfig is disabled; not running 'make oldconfig'.
              * kernel: --clean is disabled; not running 'make clean'.
              * >> Compiling 3.5.3_libata_btrfs+_V2_corei7_TL bzImage...
              * ERROR: Failed to compile the "bzImage" target...
              *
              * -- Grepping log... --
              *
              *tick-sched.c.text+0x3e60f): undefined reference to `calc_load_enter_idle'
              *kernel/built-in.o: In function `tick_nohz_idle_exit':
              *(.text+0x3ec1c): undefined reference to `update_cpu_load_nohz'
              *kernel/built-in.o: In function `tick_nohz_idle_exit':
              *(.text+0x3ec46): undefined reference to `calc_load_exit_idle'
              *make: *** [vmlinux] Error 1
              * Gentoo Linux Genkernel; Version 3.4.27
              * Running with options: --makeopts=-j1 --luks --lvm all --kernname=3.5.3_libata_btrfs+_V2_corei7_TL --no-clean
              *
              * ERROR: Failed to compile the "bzImage" target...
              *
              * -- End log... --
              *
              * Please consult /var/log/genkernel.log for more information and any
              * errors that were reported above.
              *
              * Report any genkernel bugs to bugs.gentoo.org and
              * assign your bug to genkernel@gentoo.org. Please include
              * as much information as you can in your bug report; attaching
              * /var/log/genkernel.log so that your issue can be dealt with effectively.
              *
              * Please do *not* report compilation failures as genkernel bugs!
              genkernel has been picky in the past where it failed with genkernel

              whereas with normal "make" it DID compile cleanly

              might be the same this time ... compiling manually with 1 thread now ...


              edit:

              will start completely from scratch and see if it works ...

              Comment


              • #97
                ok, confirmed: it fails:

                LD drivers/usb/built-in.o
                LD drivers/built-in.o
                LD fs/xfs/xfs.o
                LD fs/xfs/built-in.o
                LD fs/built-in.o
                LINK vmlinux
                LD vmlinux.o
                MODPOST vmlinux.o
                GEN .version
                CHK include/generated/compile.h
                UPD include/generated/compile.h
                CC init/version.o
                LD init/built-in.o
                kernel/built-in.o: In function `tick_nohz_stop_sched_tick.isra.10':
                tick-sched.c.text+0x3e60f): undefined reference to `calc_load_enter_idle'
                kernel/built-in.o: In function `tick_nohz_idle_exit':
                (.text+0x3ec1c): undefined reference to `update_cpu_load_nohz'
                kernel/built-in.o: In function `tick_nohz_idle_exit':
                (.text+0x3ec46): undefined reference to `calc_load_exit_idle'
                make: *** [vmlinux] Error 1

                Comment


                • #98
                  does the following help ?

                  Code:
                  --- linux-3.5.3_libata_btrfs+_V2/include/linux/sched.h	2012-08-16 00:08:16.810699690 +0200
                  +++ linux/include/linux/sched.h	2012-08-26 16:42:23.393117996 +0200
                  @@ -149,7 +149,9 @@ extern unsigned long this_cpu_load(void)
                   
                   
                   extern void calc_global_load(unsigned long ticks);
                  +#if !defined(CONFIG_SCHED_RIFS)
                   extern void update_cpu_load_nohz(void);
                  +#endif
                   
                   extern unsigned long get_parent_ip(unsigned long addr);
                   
                  @@ -1979,7 +1981,7 @@ static inline int set_cpus_allowed_ptr(s
                   }
                   #endif
                   
                  -#ifdef CONFIG_NO_HZ
                  +#if defined(CONFIG_NO_HZ) && !defined(CONFIG_SCHED_RIFS)
                   void calc_load_enter_idle(void);
                   void calc_load_exit_idle(void);
                   #else
                  --- linux-3.5.3_libata_btrfs+_V2/kernel/time/tick-sched.c	2012-08-16 00:07:19.802701663 +0200
                  +++ linux/kernel/time/tick-sched.c	2012-08-26 16:43:15.355119633 +0200
                  @@ -582,7 +582,9 @@ void tick_nohz_idle_exit(void)
                   	/* Update jiffies first */
                   	select_nohz_load_balancer(0);
                   	tick_do_update_jiffies64(now);
                  +#if !defined(CONFIG_SCHED_RIFS)
                   	update_cpu_load_nohz();
                  +#endif
                   
                   #ifndef CONFIG_VIRT_CPU_ACCOUNTING
                   	/*

                  Comment


                  • #99
                    success

                    Cn Avg residency P-states (frequencies)
                    C0 (cpu running) ( 0.0%) 2.27 Ghz 1.0%
                    polling 0.0ms ( 0.0%) 2.14 Ghz 1.4%
                    C1 mwait 0.0ms ( 0.0%) 1.87 Ghz 1.2%
                    C2 mwait 0.8ms ( 0.3%) 1333 Mhz 1.2%
                    C3 mwait 35.7ms (107.1%) 1200 Mhz 93.4%

                    Wakeups-from-idle per second : 33.5 interval: 5.0s
                    no ACPI power usage estimate available

                    Top causes for wakeups:
                    62.1% ( 60.2) [radeon] <interrupt>
                    23.9% ( 23.2) RIFS

                    Comment


                    • Originally posted by kernelOfTruth View Post
                      success
                      Sorry, these days i am busy.
                      I have read your test and i have figured out the problem(I have to follow up the mainline kernel and copy the part of nohz handling. Thanks.
                      Chen

                      Comment


                      • What are the chances of this scheduler making it into the "main tree" or whatever its called? I saw earlier in this thread there is no support for pluggable schedulers. I guess CFS is better for raw throughput which seems more important in a server environment? Even if it doesn't make it into mainline, is there a chance distros aimed at desktops will patch their kernel to support this RIFS-ES scheduler?

                        Excuse my total ignorance in these matters...

                        Comment


                        • Why is this dependant on CONFIG_HOTPLUG_CPU if you have CONFIG_SMP enabled.

                          Comment


                          • Latency ++

                            The linuxkernel configged for desktop is perfectly fine. I`ve had it running reliably with 0.3ms audiostreams.

                            As I said in another thread:

                            Not everyone has the skill to config linux. If you do though, you can get latencies down to 0.3ms, and games will be smooth like asm-coded custom hardware arcades. And ofcourse you can put all kinds of modern gpu features on that. I did that with doom3 and I have never played anything as amazing. And that was even with X, and Wayland is going to be better.

                            If you are into windows though, which has more SOFTWARE, there is nothing wrong with linux as an OS, then try disabling all the drivers you can. That will reduce latency on windows. And you will have a similar experience. Not as low latency, but close enough to atleast match Amiga 500, which for many is a benchmark of responsiveness. (some crackle at 1.5ms latency). Also windows has some really old drivers for instance, if you run XP which many say has the lowest latency. Try to get updated drivers.

                            And mac is typically better for professional work, software wise. 1.5ms latency unproblematic, but games doesn`t seem to run that well, yet, or maybe there is some option I haven`t seen yet. (turning off 3d-desktop?)

                            Peace Be With You.
                            And you do not need the RT-kernel anymore for that.

                            And I did not notice any performance loss with tickless on.

                            I didn`t bother reading all the pages, just up to 7.

                            An optimal lowlatency scheduler, would ofcourse be focused on latency, but not to the point of using unreasonable resources.

                            And it should have the prioritized task and it`s depencies favoured for most cpu, and setting aside a tiny bit of cpu, for background tasks, so little it won`t be noticable. Just for small things.

                            Resource use, and background tasks, should have variables, to tweak in realtime, probably based on uS.
                            Something like I don`t know:
                            Slice time, the resolution of scheduling. (uS)
                            And then how much of that slice goes to prioritized app & depencies (99.99%?), and the rest to background tasks.

                            Couldn`t you really simplify it down to that?

                            Peace Be With You.

                            Comment


                            • Well I tried it (again) with 3.5.3 ... Got GPS drop in HoN and irratic GPS while without this a constant 60fps.

                              Still say it is bad

                              Comment


                              • Originally posted by Naib View Post
                                Well I tried it (again) with 3.5.3 ... Got GPS drop in HoN and irratic GPS while without this a constant 60fps.

                                Still say it is bad
                                With ES mode enabled or not?

                                Comment

                                Working...
                                X