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

  • howaboutsynergy
    replied
    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

    Leave a comment:


  • andrebrait
    replied
    Looking forward to benchmarks and stuff :-)

    Leave a comment:


  • 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...

    http://www.phoronix.com/scan.php?pag...vernor-For-5.1
Working...
X