Hello
On a X201 core i7 (westmere), I am seeing an important number of wakeups
per second.
The system is very minimal (openbox to display lxterminal) yet I get :
- about 100 wakeups per second with only the terminal open
- about 300 wakeups per second with firefox
Currently, with firefox opened:
Summary: 283.0 wakeups/second, 2.0 GPU ops/seconds, 0.0 VFS ops/sec and
2.3% CPU us
Usage Events/s Category Description
1973 rpm Device Laptop fan
1.5 ms/s 109.7 Process
/opt/google/talkplugin/Google
1.1 ms/s 37.2 Timer hrtimer_wakeup
5.3 ms/s 35.3 Process /usr/bin/firefox
188.7 µs/s 19.6 Process [xfsaild/dm-0]
218.8 µs/s 14.7 Timer tick_sched_timer
0.8 ms/s 11.8 Interrupt [6] tasklet(softirq)
1.1 ms/s 8.8 Process lxterminal
--geometry=79x29
426.9 µs/s 9.8 Process
/opt/firefox/plugin-container
166.7 µs/s 8.8 kWork ieee80211_iface_work
126.0 µs/s 8.8 Process [rcu_sched]
590.5 µs/s 4.9 Process /usr/bin/X vt12
8.8 ms/s 0.00 Process powertop
1.0 ms/s 2.9 Interrupt [16] ath9k
55.9 µs/s 2.0 Process [ips-monitor]
426.9 µs/s 1.0 Interrupt [9] RCU(softirq)
139.3 µs/s 1.0 Process [ksoftirqd/3]
41.7 µs/s 1.0 Process /usr/sbin/acpid -f
-d -c /etc
26.4 µs/s 1.0 Interrupt [43] i915
6.4 µs/s 1.0 Interrupt [3] net_rx(softirq)
5.2 µs/s 1.0 kWork flush_to_ldisc
4.5 µs/s 1.0 kWork console_callback
3.4 µs/s 1.0 kWork
ath_tx_complete_poll_work
I tried to look for more information about which kernel configure options
could be causing that, but I could not find anything.
When I stop everything and monitor with eventstat, I still generally get
about 100 wakeups per second:
Event/s PID Task Init Function Callback
27.00 0 [swapper/0] hrtimer_start tick_sched_timer
19.00 194 [xfsaild/dm-0] xfsaild process_timeout
8.00 0 [swapper/3] hrtimer_start tick_sched_timer
5.00 0 [swapper/0] hrtimer_start_range_ns tick_sched_timer
5.00 0 [swapper/2] hrtimer_start tick_sched_timer
4.00 7 [rcu_sched] rcu_gp_kthread process_timeout
4.00 459 Xorg hrtimer_start_range_ns hrtimer_wakeup
4.00 525 lxterminal hrtimer_start_range_ns hrtimer_wakeup
3.00 0 [swapper/0] add_unmap
flush_unmaps_timeout
3.00 39 [kworker/3:1] hrtimer_start_range_ns hrtimer_wakeup
3.00 0 [swapper/1] hrtimer_start tick_sched_timer
2.00 0 [swapper/1] clocksource_watchdog
clocksource_watchdog
1.00 393 gpm hrtimer_start_range_ns hrtimer_wakeup
1.00 426 systemd-network hrtimer_start timerfd_tmrproc
1.00 143 [kworker/3:2] e1000_watchdog_task e1000_watchdog
1.00 0 [swapper/0] tpt_trig_timer tpt_trig_timer
1.00 746 python hrtimer_start_range_ns hrtimer_wakeup
1.00 0 [swapper/2] br_hello_timer_expired
br_hello_timer_expired
1.00 225 [kworker/2:2] queue_delayed_work_on
delayed_work_timer_fn
1.00 135 [kworker/u8:6] queue_delayed_work_on
delayed_work_timer_fn
1.00 36 [kworker/0:1] queue_delayed_work_on
delayed_work_timer_fn
97 Total events, 97.00 events/sec (kernel: 85.00, userspace: 12.00)
I believe the swapper is to be ignored (
https://lkml.org/lkml/2009/6/25/166)
but that still leaves xfsaild and rcu_sched
My suspects at the moment are:
- the hrtimer issue reported on
https://bugzilla.kernel.org/show_bug.cgi?id=14424
- the xfs issues reported before (
http://marc.info/?l=linux-xfs&m=134088105208917&w=2) but the patch has been
included in 3.14.25. I might move everything into a ext4 filesystem if that
can help.
- some westmere related issues (
http://lwn.net/Articles/479814/: Extend
mwait idle to optimize away IPIs when possible) but there is no more
idle=mwait
I'm running a 3.14.25 kernel, whose cmdline is:
BOOT_IMAGE=/kernel/bzImage-test root=/dev/sda4 swap=/dev/sda3
plymouth.enable=0 libahci.ignore_sss=1 raid=noautodetect
i915.lvds_downclock=1 i915.i915_enable_rc6=1 i915.fastboot=1
i915.semaphores=1 nohz=on thinkpad_acpi.brightness_enable=0
thinkpad_acpi.force_load=1 thinkpad_acpi.fan_control=1
snd-hda-intel.index=0 snd_hda_intel.power_save=10 snd-pcsp.index=1
btusb.reset=1 ath9k.ps_enable=1 ath9k.btcoex_enable=1 pcie=aspm
pcie_aspm.policy=powersave tpm_tis.force=1 tpm_tis.interrupts=0
tpm_tis.hid=PNP0C31 crashkernel=512M-2G:64M,2G-:128M nmi_watchdog=0 quiet
i915.i915_enable_fbc=1 drm.vblankoffdelay=1 rcutree.rcu_idle_gp_delay=6
iommu=pt systemd.unit=graphical.target
(The rcutree.rcu_idle_gp_delay was just a recent attempt - didn't help)
The kernel .config is attached.
Powertop is happy with all my settings except SATA link power management,
but I need link_power_management_policy set to medium_power or I do have
weird disconnect with my SSD (Buffer I/O error on device sda1, logical
block 0, etc)
Is is the best list to discuss that? (or is it only for powertop
development)
Is so, could I please ask for some suggestions to reduce the number of
wakeups per second?
Thanks