[Bug 1579278] Re: Keep powersave CPU frequency scaling governor for CPUs that support intel_pstate

Doug Smythies 1579278 at bugs.launchpad.net
Sat Sep 17 06:52:36 UTC 2016


Using kernel 4.8-rc5 I did some energy tests, using a SpecPower simulator that I made one time. I reused intel_pstate powersave data from a previous test. Reference:
http://marc.info/?l=linux-kernel&m=147326197513427&w=2

Big numbers are Joules (package Joules from turbostat)
Smaller numbers are watts, 1500 Seconds test run time.

X ~= 18.2% on a real SpecPower.

Load:		idle	0.5X	X	2X	3X	4X	5X	100%
powersave	5708	11037	16075	29147	45913	61165	76650	81695
		3.81	7.36	10.72	19.43	30.61	40.78	51.10	54.46
performance	5749	14536	22841	38475	51757	64425	77000	81733
		3.83	9.69	15.23	25.65	34.50	42.95	51.33	54.49
		0.7%	31.7%	42.1%	32.0%	12.7%	5.3%	0.5%	0.0%

Note: A real SpecPower test-bed tends to get less dramatic results than
my simulator.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to sysvinit in Ubuntu.
https://bugs.launchpad.net/bugs/1579278

Title:
  Keep powersave CPU frequency scaling governor for CPUs that support
  intel_pstate

Status in linux package in Ubuntu:
  Invalid
Status in systemd package in Ubuntu:
  Fix Released
Status in sysvinit package in Ubuntu:
  Invalid
Status in linux source package in Xenial:
  Invalid
Status in systemd source package in Xenial:
  Invalid
Status in sysvinit source package in Xenial:
  Triaged

Bug description:
  Hi,

  With the new Ubuntu archive servers, we saw constantly high load and
  after some tinkering, we found that it was mostly CPUs being woken up
  to see if they should enter idle states. Changing the CPU frequency
  scaling governor to "performance" saw a considerable drop.

  Perf report using the following commands:

  | perf record -g -a sleep 10
  | perf report

  | Samples: 287K of event 'cycles:pp', Event count (approx.): 124776998906
  |   Children      Self  Command          Shared Object             Symbol
  | +   55.24%     0.20%  swapper          [kernel.kallsyms]         [k] cpu_startup_entry
  | +   53.51%     0.00%  swapper          [kernel.kallsyms]         [k] start_secondary
  | +   53.02%     0.08%  swapper          [kernel.kallsyms]         [k] call_cpuidle
  | +   52.94%     0.02%  swapper          [kernel.kallsyms]         [k] cpuidle_enter
  | +   31.81%     0.67%  swapper          [kernel.kallsyms]         [k] cpuidle_enter_state
  | +   29.59%     0.12%  swapper          [kernel.kallsyms]         [k] acpi_idle_enter
  | +   29.45%     0.05%  swapper          [kernel.kallsyms]         [k] acpi_idle_do_entry
  | +   29.43%    29.43%  swapper          [kernel.kallsyms]         [k] acpi_processor_ffh_cstate_enter
  | +   20.51%     0.04%  swapper          [kernel.kallsyms]         [k] ret_from_intr
  | +   20.47%     0.12%  swapper          [kernel.kallsyms]         [k] do_IRQ
  | +   19.30%     0.07%  swapper          [kernel.kallsyms]         [k] irq_exit
  | +   19.18%     0.07%  apache2          [kernel.kallsyms]         [k] entry_SYSCALL_64_fastpath
  | +   18.80%     0.17%  swapper          [kernel.kallsyms]         [k] __do_softirq
  | +   16.45%     0.11%  swapper          [kernel.kallsyms]         [k] net_rx_action
  | +   16.25%     0.43%  swapper          [kernel.kallsyms]         [k] be_poll
  | +   14.74%     0.21%  swapper          [kernel.kallsyms]         [k] be_process_rx
  | +   13.61%     0.07%  swapper          [kernel.kallsyms]         [k] napi_gro_frags
  | +   12.58%     0.04%  swapper          [kernel.kallsyms]         [k] netif_receive_skb_internal
  | +   12.48%     0.03%  swapper          [kernel.kallsyms]         [k] __netif_receive_skb
  | +   12.42%     0.24%  swapper          [kernel.kallsyms]         [k] __netif_receive_skb_core
  | +   12.41%     0.00%  apache2          [unknown]                 [k] 0x00007f27983b5028
  | +   12.41%     0.00%  apache2          [unknown]                 [k] 0x00007f2798369028
  | +   11.49%     0.16%  swapper          [kernel.kallsyms]         [k] ip_rcv
  | +   11.29%     0.09%  swapper          [kernel.kallsyms]         [k] ip_rcv_finish
  | +   10.77%     0.05%  swapper          [kernel.kallsyms]         [k] ip_local_deliver
  | +   10.70%     0.06%  swapper          [kernel.kallsyms]         [k] ip_local_deliver_finish
  | +   10.55%     0.22%  swapper          [kernel.kallsyms]         [k] tcp_v4_rcv
  | +   10.10%     0.00%  apache2          [unknown]                 [k] 0000000000000000
  | +   10.01%     0.04%  swapper          [kernel.kallsyms]         [k] tcp_v4_do_rcv

  Expanding in a few of those, you'll see:

  | -   55.24%     0.20%  swapper          [kernel.kallsyms]         [k] cpu_startup_entry
  |    - 55.04% cpu_startup_entry
  |       - 52.98% call_cpuidle
  |          + 52.93% cpuidle_enter
  |          + 0.00% ret_from_intr
  |            0.00% cpuidle_enter_state
  |            0.00% irq_entries_start
  |       + 1.14% cpuidle_select
  |       + 0.47% schedule_preempt_disabled
  |         0.10% rcu_idle_enter
  |         0.09% rcu_idle_exit
  |       + 0.05% ret_from_intr
  |       + 0.05% tick_nohz_idle_enter
  |       + 0.04% arch_cpu_idle_enter
  |         0.02% cpuidle_enter
  |         0.02% tick_check_broadcast_expired
  |       + 0.01% cpuidle_reflect
  |         0.01% menu_reflect
  |         0.01% atomic_notifier_call_chain
  |         0.01% local_touch_nmi
  |         0.01% cpuidle_not_available
  |         0.01% menu_select
  |         0.01% cpuidle_get_cpu_driver
  |       + 0.01% tick_nohz_idle_exit
  |       + 0.01% sched_ttwu_pending
  |         0.00% set_cpu_sd_state_idle
  |         0.00% native_irq_return_iret
  |         0.00% schedule
  |       + 0.00% arch_cpu_idle_exit
  |         0.00% __tick_nohz_idle_enter
  |         0.00% irq_entries_start
  |         0.00% sched_clock_idle_wakeup_event
  |         0.00% reschedule_interrupt
  |       + 0.00% apic_timer_interrupt
  |    + 0.20% start_secondary
  |    + 0.00% x86_64_start_kernel
  | +   53.51%     0.00%  swapper          [kernel.kallsyms]         [k] start_secondary
  | +   53.02%     0.08%  swapper          [kernel.kallsyms]         [k] call_cpuidle
  | -   52.94%     0.02%  swapper          [kernel.kallsyms]         [k] cpuidle_enter
  |    - 52.92% cpuidle_enter
  |       + 31.81% cpuidle_enter_state
  |       + 20.01% ret_from_intr
  |       + 0.51% apic_timer_interrupt
  |         0.28% native_irq_return_iret
  |       + 0.09% reschedule_interrupt
  |         0.05% irq_entries_start
  |         0.05% do_IRQ
  |         0.05% common_interrupt
  |         0.02% sched_idle_set_state
  |         0.01% acpi_idle_enter
  |         0.01% ktime_get
  |         0.01% restore_regs_and_iret
  |         0.01% restore_c_regs_and_iret
  |       + 0.01% call_function_single_interrupt
  |         0.00% native_iret
  |       + 0.00% call_function_interrupt
  |         0.00% smp_apic_timer_interrupt
  |         0.00% smp_reschedule_interrupt
  |         0.00% smp_call_function_single_interrupt
  |    + 0.02% start_secondary

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1579278/+subscriptions



More information about the foundations-bugs mailing list