Announcement

Collapse
No announcement yet.

The New "TEO" CPU Idle Governor For Tickless Systems Queued Ahead Of Linux 5.1

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

  • The New "TEO" CPU Idle Governor For Tickless Systems Queued Ahead Of Linux 5.1

    Phoronix: The New "TEO" CPU Idle Governor For Tickless Systems Queued Ahead Of Linux 5.1

    The new "Timer Events Oriented" (TEO) governor in development over recent months by Intel developer Rafael Wysocki is poised to land with the Linux 5.1 kernel cycle...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Looking forward to benchmarks and stuff :-)

    Comment


    • #3
      Code:
      when /proc/cmdline has cpuidle.governor=teo
      and both CPU_IDLE_GOV_MENU=y and CONFIG_CPU_IDLE_GOV_TEO=y in kernel .config ie. /proc/config.gz
      I wanna avoid seeing these 2 msgs in succession:
      kernel: cpuidle: using governor menu
      kernel: cpuidle: using governor teo
      
      ie. see only the last msg instead!
      solution: it's enough to just change their order in the Makefile !
      
      btw, with WARN_ON(1) you'll see:
      May 12 21:31:19 i87k kernel: cpuidle: using governor menu
      May 12 21:31:19 i87k kernel: WARNING: CPU: 0 PID: 1 at drivers/cpuidle/governor.c:70 cpuidle_switch_governor.part.1+0x93/0xb0
      May 12 21:31:19 i87k kernel: Modules linked in:
      May 12 21:31:19 i87k kernel: CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.1.1-gb724e9356404 #7
      May 12 21:31:19 i87k kernel: Hardware name: System manufacturer System Product Name/PRIME Z370-A, BIOS 1002 07/02/2018
      May 12 21:31:19 i87k kernel: RIP: 0010:cpuidle_switch_governor.part.1+0x93/0xb0
      May 12 21:31:19 i87k kernel: Code: 48 8b 83 a0 02 00 00 48 8d 98 60 fd ff ff 48 3d 80 51 08 ac 75 e2 e8 fc fa ff ff 48 89 ee 48 c7 c7 80 fd ea ab e8 f6 88 a4 ff <0f> 0b 31 c0 5>
      May 12 21:31:19 i87k kernel: RSP: 0000:ffffbc1b4317fdf0 EFLAGS: 00010246
      May 12 21:31:19 i87k kernel: RAX: 000000000000001c RBX: ffffffffac084ee0 RCX: ffffffffac03e018
      May 12 21:31:19 i87k kernel: RDX: 0000000000000000 RSI: 0000000000000092 RDI: ffffffffac55d2cc
      May 12 21:31:19 i87k kernel: RBP: ffffffffac085560 R08: 000000000000010f R09: 000000000000002b
      May 12 21:31:19 i87k kernel: R10: 0000000000000775 R11: ffffbc1b4317fc98 R12: 0000000000000000
      May 12 21:31:19 i87k kernel: R13: ffffffffac085570 R14: ffffffffac0851c0 R15: 0000000000000000
      May 12 21:31:19 i87k kernel: FS:  0000000000000000(0000) GS:ffff9dc4ed800000(0000) knlGS:0000000000000000
      May 12 21:31:19 i87k kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      May 12 21:31:19 i87k kernel: CR2: 0000000000000000 CR3: 000000065f00e001 CR4: 00000000003606f0
      May 12 21:31:19 i87k kernel: DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      May 12 21:31:19 i87k kernel: DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      May 12 21:31:19 i87k kernel: Call Trace:
      May 12 21:31:19 i87k kernel:  cpuidle_register_governor+0x12a/0x150
      May 12 21:31:19 i87k kernel:  ? cpuidle_sysfs_setup+0x10/0x10
      May 12 21:31:19 i87k kernel:  ? do_early_param+0x89/0x89
      May 12 21:31:19 i87k kernel:  do_one_initcall+0x42/0x165
      May 12 21:31:19 i87k kernel:  ? do_early_param+0x89/0x89
      May 12 21:31:19 i87k kernel:  kernel_init_freeable+0x176/0x223
      May 12 21:31:19 i87k kernel:  ? rest_init+0x9a/0x9a
      May 12 21:31:19 i87k kernel:  kernel_init+0x5/0xf6
      May 12 21:31:19 i87k kernel:  ret_from_fork+0x35/0x40
      May 12 21:31:19 i87k kernel: ---[ end trace 9c617f2740e36448 ]---
      May 12 21:31:19 i87k kernel: cpuidle: using governor teo
      May 12 21:31:19 i87k kernel: WARNING: CPU: 1 PID: 1 at drivers/cpuidle/governor.c:70 cpuidle_switch_governor.part.1+0x93/0xb0
      May 12 21:31:19 i87k kernel: Modules linked in:
      May 12 21:31:19 i87k kernel: CPU: 1 PID: 1 Comm: swapper/0 Tainted: G        W         5.1.1-gb724e9356404 #7
      May 12 21:31:19 i87k kernel: Hardware name: System manufacturer System Product Name/PRIME Z370-A, BIOS 1002 07/02/2018
      May 12 21:31:19 i87k kernel: RIP: 0010:cpuidle_switch_governor.part.1+0x93/0xb0
      May 12 21:31:19 i87k kernel: Code: 48 8b 83 a0 02 00 00 48 8d 98 60 fd ff ff 48 3d 80 51 08 ac 75 e2 e8 fc fa ff ff 48 89 ee 48 c7 c7 80 fd ea ab e8 f6 88 a4 ff <0f> 0b 31 c0 5>
      May 12 21:31:19 i87k kernel: RSP: 0000:ffffbc1b4317fdf0 EFLAGS: 00010246
      May 12 21:31:19 i87k kernel: RAX: 000000000000001b RBX: ffffffffac084ee0 RCX: ffffffffac03e018
      May 12 21:31:19 i87k kernel: RDX: 0000000000000000 RSI: 0000000000000092 RDI: ffffffffac55d2cc
      May 12 21:31:19 i87k kernel: RBP: ffffffffac0855c0 R08: 000000000000012c R09: 000000000000002a
      May 12 21:31:19 i87k kernel: R10: 000000000000076f R11: ffffbc1b4317fc98 R12: 0000000000000000
      May 12 21:31:19 i87k kernel: R13: ffffffffac0855d0 R14: ffffffffac0851c0 R15: 0000000000000000
      May 12 21:31:19 i87k kernel: FS:  0000000000000000(0000) GS:ffff9dc4ed840000(0000) knlGS:0000000000000000
      May 12 21:31:19 i87k kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      May 12 21:31:19 i87k kernel: CR2: 0000000000000000 CR3: 000000065f00e001 CR4: 00000000003606e0
      May 12 21:31:19 i87k kernel: DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      May 12 21:31:19 i87k kernel: DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      May 12 21:31:19 i87k kernel: Call Trace:
      May 12 21:31:19 i87k kernel:  cpuidle_register_governor+0x12a/0x150
      May 12 21:31:19 i87k kernel:  ? init_menu+0xc/0xc
      May 12 21:31:19 i87k kernel:  ? do_early_param+0x89/0x89
      May 12 21:31:19 i87k kernel:  do_one_initcall+0x42/0x165
      May 12 21:31:19 i87k kernel:  ? do_early_param+0x89/0x89
      May 12 21:31:19 i87k kernel:  kernel_init_freeable+0x176/0x223
      May 12 21:31:19 i87k kernel:  ? rest_init+0x9a/0x9a
      May 12 21:31:19 i87k kernel:  kernel_init+0x5/0xf6
      May 12 21:31:19 i87k kernel:  ret_from_fork+0x35/0x40
      May 12 21:31:19 i87k kernel: ---[ end trace 9c617f2740e36449 ]---
      
      diff --git a/drivers/cpuidle/governor.c b/drivers/cpuidle/governor.c
      index 9fddf828a76f..e81e275320af 100644
      --- a/drivers/cpuidle/governor.c
      +++ b/drivers/cpuidle/governor.c
      @@ -67,6 +67,7 @@ int cpuidle_switch_governor(struct cpuidle_governor *gov)
                   cpuidle_enable_device(dev);
               cpuidle_install_idle_handler();
               printk(KERN_INFO "cpuidle: using governor %s\n", gov->name);
      +    //WARN_ON(1);
           }
       
           return 0;
      diff --git a/drivers/cpuidle/governors/Makefile b/drivers/cpuidle/governors/Makefile
      index 4d8aff5248a8..938fb980fb67 100644
      --- a/drivers/cpuidle/governors/Makefile
      +++ b/drivers/cpuidle/governors/Makefile
      @@ -2,6 +2,6 @@
       # Makefile for cpuidle governors.
       #
       
      +obj-$(CONFIG_CPU_IDLE_GOV_TEO) += teo.o
       obj-$(CONFIG_CPU_IDLE_GOV_LADDER) += ladder.o
       obj-$(CONFIG_CPU_IDLE_GOV_MENU) += menu.o
      -obj-$(CONFIG_CPU_IDLE_GOV_TEO) += teo.o

      Comment

      Working...
      X