kernel-packages team mailing list archive
-
kernel-packages team
-
Mailing list archive
-
Message #180445
[Bug 1579278] Re: Consider changing default CPU frequency scaling governor back to "performance" (Ubuntu Server)
In that same Google+ post, Arjan van de Ven wrote:
"""
Now, about ondemand and cpufreq.
The ondemand algorithm was designed roughly 10 years ago, for CPUs from that era. If you look at what ondemand really ends up doing, is managing the frequency during idle periods, and 10 years ago, that mattered for power.
Today (well, last 5 years), the frequency in idle is zero, and even the
voltage is now zero (NHM and later).... so what frequency the OS picks
during the idle period is completely irrelevant. This, and other things,
make ondemand not a good algorithm for current Intel processors.
...
The new code in the 3.9 kernel, under, CONFIG_X86_INTEL_PSTATE, is a fresh approach to all of this.
"""
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1579278
Title:
Consider changing default CPU frequency scaling governor back to
"performance" (Ubuntu Server)
Status in linux package in Ubuntu:
Invalid
Status in sysvinit package in Ubuntu:
New
Status in linux source package in Xenial:
Invalid
Status in sysvinit source package in Xenial:
New
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
References