On Tue, 10 Sep 2019 22:17:04 -0700 Marc MERLIN <marc_...@merlins.org> said:

> On Mon, Sep 09, 2019 at 09:26:56AM +0100, Carsten Haitzler wrote:
> > On Sun, 8 Sep 2019 17:53:02 -0700 Marc MERLIN <marc_...@merlins.org> said:
> > 
> > depends what you have visible. if you have cpufreq - reduce its poll
> > interval (make it slower). my close shows just minutes, not seconds, i
> > disable
> 
> I do not, but thanks for asking.
> 
> > terminology's blinking cursor too as this actually is pumping out on average
> > 30fps (60fps for 0.5 sec, then stop, then another 60fps for 0.5 sec etc. as
> > it fades in and out). if it's blinking, pulsing, moving all the time - it'll
> > consume power. my xps13 with internal screen only, backlight dimmed to 30%,
> > wifi on, bt on, no peripherals plugged in:
> 
> I don't have terminology. and I'm looking on my screen, I don't see
> anything blinking or moving, so it's hard to say.
> 
> I still have
>   3.43 W     49.2 ms/s     236.6        Process        /usr/bin/enlightenment
> 
> I have no idea how you get yours to 13 wakeups per second.
> >               7.9 ms/s      13.7        Process        [PID
> > 857] /usr/local/bin/enlightenment
> > 
> > I can't say what the wattage of e is but total system usage is 2.75w and
> > that's like almost 1/4 of yours. I can drop system power usage to 2.4w if i
> > go to 0% backlight. 100% backlight jumps up to 4w.
>  
> I have a thinkpad P70, it's a big laptop with a 17" 4K screen, so it's
> expected to use batteries, but I have a 99Wh battery.
> 
> > Maybe double-check battery gagdet settings to see how often it checks
> > battery (Mine's at 256 ticks)? You're getting a lot of wakeups
> > there... (295.9) ... is something rendering all the time? it could be
> > some app on your screen doing this...
>  
> Oh, you're saying an app rendering will be counted against
> enlightenment?
> If so, it's going to make my life harder in pinning it down.

absolutely. e is a compositor. Anything updating on screen - including apps
will also cause enlightenment to have to deal with it as it then has to take
the apps rendering results and present it to the screen which requires e to
wake up several times to deal with it. it will wake up several times probably
because:

1. it sleeps waiting for either timeouts or input.
2. it'll be woken up by incoming event(s) such as damage region events from x
for some window
3. it will then queue up a a deferred render for next vsync
3.1 if vsync thread is not already in a "queue up next vsync event from drm
device" mode, main thread will send vsync thread a message (wake up vsync
thread)
3.2 vsync thread wakes and tells drm device to "send me an event next vsync"
then goes back to sleep waiting for the vsync events
4. when vsync event arrives from drm device in vsync thread, wake up, get
timestamp and now send information back to main loop.
5. main loop wakeup and evaluate state of the world, calculate what needs
updating (if anything) so as long as something is visible that needs an update
do rendering...
6. rendering itself, depending on gpu, driver etc. may involve sleep and
wakeups as e goes into blocking syscalls that may wait on queues/buffers to
empty - given luck and so on no excessive wakeups and sleeps beyond what is
needed. in the end though e will now head back to sleep so we're back to number
1.

you'll know its probably either input events from x (like mouse or touchpad
jitter) or an app rendering if you see wakeups in the xserver as well. e will
have more wakeups than the xserver because per frame it will actually probably
wake and go to sleep at least 2 times (not once) possibly more depending on
state of things. so it goes in and out of sleep more, but may run for less time
as it splits up the work. if an app is rendering 200fps... this helps because e
will throttle itself to 60fps (or whatever your screen refresh rate is). with
multiple apps rendering multiple things at the same time this allows it to
collect updates from several windows within the space of 1 frame and defer
until next vsync.

so wakeup count in general will be higher because of this, but with given
upsides.

> Sounds like there is nothing obvious you can point me to, given that it
> could not even be E's fault but another app that causes E wakeups.

looks at wakeups on the xserver or other processes that display. you have a lot
of wakeups in kbfsfuse and wicd for sure there too. i do not use wicd - i use
connman and have never seen it even listed with having wakeups at all when i
have an idle laptop that isn't trying to connect to some network (is connected
already to wifi or wired network).

my advice - process of elimination. disable modules in e to see if any of them
somehow is causing polling. run zero apps on screen (ssh in and run powertop
remotely and do nothing else with that ssh session other than this).

kill off processes that have wakeups -> wicd smells bad to me there as i do not
see why it should have any wakeups at all most of the time - maybe a few per
second to poll current signal level? certainly not 90+. enlightenment could be
bad but it can and is driven by inputs a lot (like rendering from apps), thus
an animating blinking cursor in terminology will cause wakeups in e too.
perhaps look at settings -> mouse -> cursor -> E Theme and disable idle effects
because if the cursor is idle and not moving for a while e will tell it it is
idle and the theme may then pulse the mouse every now and again (depends on
theme as to what it wants to do). disable that. wouldn't normally matter unless
you are doing this kind of powertop thing when the mouse may idle for long
periods...

                Usage       Events/s    Category       Description
            100.0%                      Device         Radio device: btusb
            100.0%                      Device         USB device: 
usb-device-0cf3-e300
             30.0%                      Device         Display backlight
              7.7 ms/s      13.8        Process        [PID 840] 
/usr/local/bin/enlightenment
              2.0 ms/s       4.5        Process        [PID 655] /usr/lib/Xorg 
-nolisten tcp vt07 -auth /var/run/slim.auth
              0.8 ms/s      11.3        Interrupt      [3] net_rx(softirq)
              0.7 ms/s      0.00        Process        [PID 80] [kworker/u16:1]
            488.2 µs/s       2.3        Process        [PID 902] 
/usr/local/bin/enlightenment
            383.2 µs/s       4.2        Process        [PID 1007] powertop
            367.6 µs/s      20.9        Timer          tick_sched_timer
            342.3 µs/s      0.05        Interrupt      [140] ath10k_pci
            310.3 µs/s       1.5        Interrupt      [135] i915
            285.4 µs/s       0.7        Interrupt      [7] sched(softirq)
            183.5 µs/s      0.00        Interrupt      [1] timer(softirq)
            168.3 µs/s      0.00        Process        [PID 970] [kworker/u16:2]
            125.3 µs/s       7.9        kWork          ieee80211_iface_work
            115.9 µs/s       6.3        Process        [PID 10] [rcu_preempt]
            104.3 µs/s      0.00        Timer          hrtimer_wakeup
            101.7 µs/s      0.00        Timer          process_timeout
             98.6 µs/s      0.00        Timer          delayed_work_timer_fn
             78.5 µs/s      0.00        Process        [PID 29] [kworker/2:0]
             59.9 µs/s      0.00        Interrupt      [9] RCU(softirq)
             58.7 µs/s      0.25        kWork          __i915_globals_park
             58.3 µs/s       3.8        kWork          intel_atomic_cleanup_work
             47.0 µs/s       4.0        Interrupt      [0] HI_SOFTIRQ
             46.5 µs/s      0.00        Timer          ath10k_pci_ps_timer
             35.2 µs/s      0.00        Process        [PID 278] [kworker/4:2]
             34.3 µs/s      0.00        Process        [PID 272] [kworker/6:1H]
             33.7 µs/s       3.9        kWork          psi_avgs_work
             29.0 µs/s      0.00        Timer          clocksource_watchdog
             24.3 µs/s       2.0        Timer          watchdog_timer_fn
             22.9 µs/s      0.00        kWork          vmstat_update
             21.5 µs/s      0.05        Process        [PID 552] [kworker/7:2]
             20.1 µs/s      0.25        Process        [PID 55] [rcuc/6]
             19.2 µs/s      0.00        Process        [PID 86] [kworker/1:1]
             17.9 µs/s      0.10        Process        [PID 41] [rcuc/4]
             15.5 µs/s      0.00        Process        [PID 71] [kworker/6:1]
             15.2 µs/s      0.25        Process        [PID 27] [rcuc/2]
             14.7 µs/s      0.15        Process        [PID 677] 
/usr/bin/wpa_supplicant -u
             14.4 µs/s      0.10        Process        [PID 48] [rcuc/5]
             14.2 µs/s      0.00        Process        [PID 56] [ksoftirqd/6]
             11.8 µs/s       3.8        kWork          
intel_atomic_helper_free_state_

That's my extended list of wakeups when totally idle. with a terminal and a 
blinking cursor (that's going to produce 30 fps):

                Usage       Events/s    Category       Description
            100.0%                      Device         Radio device: btusb
             70.7 ms/s     379.7        Process        [PID 840] 
/usr/local/bin/enlightenment
             43.8 ms/s     185.3        Process        [PID 1083] terminology
             42.3 ms/s      18.9        Process        [PID 655] /usr/lib/Xorg 
-nolisten tcp vt07 -auth /var/run/slim.auth
            100.0%                      Device         USB device: 
usb-device-0cf3-e300
             65.0%                      Device         Display backlight
              9.2 ms/s      20.4        Process        [PID 1164] systemd-udevd
              7.3 ms/s      0.00        Process        [PID 608] 
/usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile 
--systemd-activation --syslog-only
              4.3 ms/s     195.2        Timer          tick_sched_timer
              4.2 ms/s       5.7        Process        [PID 1] /sbin/init nopti 
nopti
              3.7 ms/s      0.00        Process        [PID 1161] 
[kworker/u16:3]
              3.2 ms/s       9.6        Process        [PID 312] 
/usr/lib/systemd/systemd-udevd
              3.1 ms/s      16.9        Interrupt      [7] sched(softirq)
              3.1 ms/s      18.5        Interrupt      [135] i915
              2.7 ms/s      25.3        Process        [PID 610] 
/usr/lib/systemd/systemd-logind
              1.9 ms/s      0.00        Process        [PID 829] 
/usr/lib/systemd/systemd --user
              1.3 ms/s      0.05        Interrupt      [1] timer(softirq)
              1.1 ms/s      0.00        Process        [PID 1082] 
[kworker/u16:0]
              1.1 ms/s      58.0        Process        [PID 10] [rcu_preempt]
              1.1 ms/s       3.9        Interrupt      [9] RCU(softirq)
              0.8 ms/s      0.00        Timer          process_timeout
              0.8 ms/s       7.1        Interrupt      [3] net_rx(softirq)
            626.8 µs/s       0.8        Timer          hrtimer_wakeup
            518.0 µs/s      30.4        kWork          intel_atomic_cleanup_work
            474.4 µs/s      99.9        Interrupt      [0] HI_SOFTIRQ
            420.6 µs/s       3.8        Process        [PID 1007] powertop
            386.6 µs/s      0.00        Interrupt      [140] ath10k_pci
            346.1 µs/s       1.4        Process        [PID 48] [rcuc/5]
            278.7 µs/s       1.6        Process        [PID 27] [rcuc/2]
            258.2 µs/s      0.00        Process        [PID 49] [ksoftirqd/5]
            229.2 µs/s       1.6        Process        [PID 11] [rcuc/0]
            218.1 µs/s      0.00        Timer          delayed_work_timer_fn
            202.3 µs/s       1.5        Process        [PID 20] [rcuc/1]
            187.9 µs/s       0.4        Process        [PID 9] [ksoftirqd/0]
            171.1 µs/s       1.4        Process        [PID 55] [rcuc/6]
            164.5 µs/s       1.5        Process        [PID 62] [rcuc/7]
            152.6 µs/s      0.25        Process        [PID 21] [ksoftirqd/1]
            136.2 µs/s      0.00        Process        [PID 63] [ksoftirqd/7]
            136.0 µs/s      0.00        Process        [PID 56] [ksoftirqd/6]
            134.3 µs/s      0.00        Process        [PID 71] [kworker/6:1]
            127.0 µs/s       0.5        Process        [PID 28] [ksoftirqd/2]
            124.6 µs/s       7.1        kWork          ieee80211_iface_work
            123.2 µs/s      0.00        Process        [PID 634] [kworker/4:1H]
            121.6 µs/s       0.5        Process        [PID 34] [rcuc/3]
            120.0 µs/s      0.00        Process        [PID 272] [kworker/6:1H]
            118.4 µs/s      0.00        Process        [PID 390] [kworker/5:2]
            106.1 µs/s      0.00        Process        [PID 15] [kworker/0:1]
            105.9 µs/s       0.4        Process        [PID 609] 
/usr/bin/connmand -n
            100.1 µs/s      0.05        Process        [PID 35] [ksoftirqd/3]
             98.3 µs/s      0.00        Process        [PID 86] [kworker/1:1]
             97.9 µs/s       0.4        kWork          i915_hangcheck_elapsed
             93.9 µs/s      0.00        Process        [PID 552] [kworker/7:2]
             89.8 µs/s      30.4        kWork          
intel_atomic_helper_free_state_
             86.2 µs/s       0.8        Process        [PID 41] [rcuc/4]
             74.5 µs/s      0.00        Process        [PID 318] [kworker/2:1H]
             72.7 µs/s      0.00        Process        [PID 42] [ksoftirqd/4]
             68.6 µs/s      0.00        Process        [PID 278] [kworker/4:2]
             62.4 µs/s      0.00        kWork          vmstat_update
             60.1 µs/s       3.7        kWork          gc_worker

> I'll keep looking, but it sounds like it won't be easy.
> 
> Thanks for the answer,
> Marc
> -- 
> "A mouse is a device used to point at the xterm you want to type in" - A.S.R.
> Microsoft is to operating systems ....
>                                       .... what McDonalds is to gourmet
> cooking Home page: http://marc.merlins.org/                       | PGP
> 7F55D5F27AAF9D08
> 
> 
> _______________________________________________
> enlightenment-users mailing list
> enlightenment-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-users
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
Carsten Haitzler - ras...@rasterman.com



_______________________________________________
enlightenment-users mailing list
enlightenment-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-users

Reply via email to