hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
19.71k stars 837 forks source link

Increased idle CPU usage #7051

Closed ErrorNoInternet closed 1 month ago

ErrorNoInternet commented 1 month ago

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland, built from branch main at commit 33a5c8ce325e1657ec5571b57e05c6378706f4cd dirty (config: avoid using initial ws tracking for exec-once). Date: Thu Jul 25 21:29:39 2024 Tag: v0.41.2-98-g33a5c8ce, commits: 4984 flags: (if any) System Information: System name: Linux Node name: fedobox Release: 6.9.10-200.patched.fc40.x86_64 Version: #1 SMP PREEMPT_DYNAMIC Fri Jul 19 08:50:17 UTC 2024 GPU information: 00:02.0 VGA compatible controller [0300]: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller [8086:0416] (rev 06) (prog-if 00 [VGA controller]) os-release: NAME="Fedora Linux" VERSION="40 (Forty)" ID=fedora VERSION_ID=40 VERSION_CODENAME="" PLATFORM_ID="platform:f40" PRETTY_NAME="Fedora Linux 40 (Forty)" ANSI_COLOR="0;38;2;60;110;180" LOGO=fedora-logo-icon CPE_NAME="cpe:/o:fedoraproject:fedora:40" DEFAULT_HOSTNAME="fedora" HOME_URL="https://fedoraproject.org/" DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f40/system-administrators-guide/" SUPPORT_URL="https://ask.fedoraproject.org/" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=40 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=40 SUPPORT_END=2025-05-13 plugins: ======Config-Start====== Config File: /home/error/.config/hypr/hyprland.conf: Read Succeeded source = shared/colors.conf source = hyprland/aesthetics.conf source = hyprland/binds.conf source = hyprland/exec-once.conf source = hyprland/input.conf source = hyprland/monitor.conf source = hyprland/windowrules.conf dwindle { preserve_split = true } general { layout = dwindle } debug { disable_logs = false } Config File: /home/error/.config/hypr/shared/colors.conf: Read Succeeded $dark0 = rgb(2E3440) $dark1 = rgb(3B4252) $dark2 = rgb(434C5E) $dark3 = rgb(4C566A) $light0 = rgb(D8DEE9) $light1 = rgb(E5E9F0) $light2 = rgb(ECEFF4) $red = rgb(BF616A) $orange = rgb(D08770) $yellow = rgb(EBCB8B) $green = rgb(A3BE8C) $purple = rgb(B48EAD) $accent0 = rgb(8FBCBB) $accent1 = rgb(88C0D0) $accent2 = rgb(81A1C1) $accent3 = rgb(5E81AC) Config File: /home/error/.config/hypr/hyprland/aesthetics.conf: Read Succeeded animations { bezier = extremeEaseOut, 0, 1, 0, 1 animation = fade, 1, 5, default animation = layers, 1, 1, default, popin 90% animation = windows, 1, 5, extremeEaseOut, popin 75% animation = windowsOut, 1, 5, default, popin 75% animation = workspaces, 1, 4, extremeEaseOut } decoration { blur { passes = 3 popups = true popups_ignorealpha = 0.65 size= 8 } col.shadow = $dark0 drop_shadow = true rounding = 12 shadow_range = 25 shadow_render_power = 3 } misc { animate_manual_resizes = true animate_mouse_windowdragging = true disable_hyprland_logo = true disable_splash_rendering = true } group { groupbar { col.active = $accent2 col.inactive = $dark3 col.locked_active = $accent3 col.locked_inactive = $dark3 gradients = false render_titles = false } col.border_active = $accent2 col.border_inactive = $dark3 col.border_locked_active = $accent3 col.border_locked_inactive = $dark3 } general { border_size = 2 col.active_border = $accent2 col.inactive_border = $dark3 gaps_in = 4 gaps_out = 8 } Config File: /home/error/.config/hypr/hyprland/binds.conf: Read Succeeded $mod=ALT bind=$mod CTRL SHIFT, code:22, exec, hyprctl dispatch exit bind=$mod, D, exec, rofi -modes drun,window,run -show drun || pkill rofi bind=$mod, G, exec, cliphist list | (rofi -dmenu -window-title cb -no-show-icons -theme-str 'window { width: 500px; } listview { lines: 15; }' || pkill rofi) | cliphist decode | wl-copy bind=$mod, code:60, exec, rofi -show emoji -no-show-icons -theme-str 'window { width: 500px; } listview { lines: 15; }' || pkill rofi bind=, PRINT, exec, grimblast --freeze save area - | wl-copy bind=SHIFT, PRINT, exec, grimblast --freeze save area - | shadower -r16 | wl-copy bind=CTRL, PRINT, exec, grimblast --freeze save area - | satty -f- --early-exit --copy-command wl-copy --init-tool rectangle bind=CTRL SHIFT, PRINT, exec, grimblast --freeze save area - | shadower -r16 | satty -f- --early-exit --copy-command wl-copy --init-tool rectangle | wl-copy bind=$mod, L, exec, loginctl lock-session bind=$mod SHIFT, L, exec, (sleep 3 && hyprctl dispatch dpms off &) && loginctl lock-session bindl=,switch:on:Lid Switch, exec, loginctl lock-session bindl=,switch:off:Lid Switch, exec, loginctl lock-session bind=$mod SHIFT, A, exec, scratchpad -g bind=$mod, A, exec, scratchpad bind=$mod CTRL SHIFT, A, togglespecialworkspace, scratchpad bind=$mod, O, exec, swaync-client -t bind=$mod, RETURN, exec, kitty bind=$mod, code:51, exec, firefox bind=$mod SHIFT, RETURN, exec, [float; center] kitty bind=$mod SHIFT, F, fullscreen bind=$mod, F, fullscreen, 1 bind=$mod, Q, killactive bind=$mod, T, togglegroup bind=$mod, V, togglefloating bind=$mod, Z, togglesplit bind=$mod, left, movefocus, l bind=$mod, right, movefocus, r bind=$mod, up, movefocus, u bind=$mod, down, movefocus, d bind=$mod SHIFT, left, movewindow, l bind=$mod SHIFT, right, movewindow, r bind=$mod SHIFT, up, movewindow, u bind=$mod SHIFT, down, movewindow, d bind=$mod CTRL, left, changegroupactive, b bind=$mod CTRL, right, changegroupactive, f bind=$mod SHIFT, T, lockgroups, toggle bind=$mod CTRL SHIFT, left, movewindoworgroup, l bind=$mod CTRL SHIFT, right, movewindoworgroup, r bind=$mod CTRL SHIFT, up, movewindoworgroup, u bind=$mod CTRL SHIFT, down, movewindoworgroup, d bind=$mod, TAB, workspace, previous bind=$mod SHIFT, TAB, movetoworkspace, previous bind=$mod, mouse_down, workspace, e-1 bind=$mod, mouse_up, workspace, e+1 bind=$mod, 1, workspace, 1 bind=$mod SHIFT, 1, movetoworkspace, 1 bind=$mod, 2, workspace, 2 bind=$mod SHIFT, 2, movetoworkspace, 2 bind=$mod, 3, workspace, 3 bind=$mod SHIFT, 3, movetoworkspace, 3 bind=$mod, 4, workspace, 4 bind=$mod SHIFT, 4, movetoworkspace, 4 bind=$mod, 5, workspace, 5 bind=$mod SHIFT, 5, movetoworkspace, 5 bind=$mod, 6, workspace, 6 bind=$mod SHIFT, 6, movetoworkspace, 6 bind=$mod, 7, workspace, 7 bind=$mod SHIFT, 7, movetoworkspace, 7 bind=$mod, 8, workspace, 8 bind=$mod SHIFT, 8, movetoworkspace, 8 bind=$mod, 9, workspace, 9 bind=$mod SHIFT, 9, movetoworkspace, 9 bind=$mod, 0, workspace, 10 bind=$mod SHIFT, 0, movetoworkspace, 10 bindle=,XF86AudioMute, exec, pavolume toggle bindle=,XF86AudioRaiseVolume, exec, pavolume up bindle=,XF86AudioLowerVolume, exec, pavolume down bindle=,XF86MonBrightnessUp, exec, brightnessctl s 2%+ bindle=,XF86MonBrightnessDown, exec, brightnessctl s 2%- bindm=$mod, mouse:272, movewindow bindm=$mod, mouse:273, resizewindow bind=$mod CTRL SHIFT, escape, submap, clean submap=clean bind=$mod CTRL SHIFT, escape, submap, reset submap=reset bind=$mod,R,submap,resize submap=resize binde=,left,resizeactive,-40 0 binde=,right,resizeactive,40 0 binde=,up,resizeactive,0 -40 binde=,down,resizeactive,0 40 binde=,H,resizeactive,-40 0 binde=,L,resizeactive,40 0 binde=,K,resizeactive,0 -40 binde=,J,resizeactive,0 40 bind=,escape,submap,reset bind=$mod,R,submap,reset submap=reset binds { allow_workspace_cycles = true } Config File: /home/error/.config/hypr/hyprland/exec-once.conf: Read Succeeded exec-once = dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target exec-once = swaybg -m fill -i ~/pictures/wallpapers/0.png Config File: /home/error/.config/hypr/hyprland/input.conf: Read Succeeded gestures { workspace_swipe = true workspace_swipe_cancel_ratio = 0.25 workspace_swipe_forever = true workspace_swipe_min_speed_to_force = 10 } input { touchpad { disable_while_typing = false natural_scroll = true } accel_profile = flat repeat_delay = 150 repeat_rate = 50 sensitivity = 0.75 } misc { key_press_enables_dpms = true mouse_move_enables_dpms = true } Config File: /home/error/.config/hypr/hyprland/monitor.conf: Read Succeeded monitor = eDP-1, 1920x1080@60, 0x0, 1 monitor = VGA-1, 1680x1050@60, -1680x0, 1 monitor = , preferred, auto, 1 Config File: /home/error/.config/hypr/hyprland/windowrules.conf: Read Succeeded windowrulev2 = size 960 594, class:kitty windowrulev2 = size 720 540, class:qalculate-gtk windowrulev2 = float, class:qalculate-gtk windowrulev2 = float, class:branchdialog windowrulev2 = float, class:confirm windowrulev2 = float, class:dialog windowrulev2 = float, class:error windowrulev2 = float, class:mpv windowrulev2 = float, class:notification windowrulev2 = float, class:pavucontrol windowrulev2 = float, class:vimiv windowrulev2 = animation slide, class:blueman-manager windowrulev2 = center, class:blueman-manager windowrulev2 = float, class:blueman-manager windowrulev2 = size 60% 65%, class:blueman-manager windowrulev2 = animation slide, class:xdg-desktop-portal windowrulev2 = center, class:xdg-desktop-portal windowrulev2 = float, class:xdg-desktop-portal windowrulev2 = size 60% 65%, class:xdg-desktop-portal windowrulev2 = animation slide, title:File Upload windowrulev2 = center, title:File Upload windowrulev2 = float, title:File Upload windowrulev2 = size 60% 65%, title:File Upload windowrulev2 = animation slide, title:Open windowrulev2 = center, title:Open windowrulev2 = float, title:Open windowrulev2 = size 60% 65%, title:Open windowrulev2 = animation slide, title:Save As windowrulev2 = center, title:Save As windowrulev2 = float, title:Save As windowrulev2 = size 60% 65%, title:Save As layerrule = animation fade, hyprpicker layerrule = blur, rofi layerrule = ignorezero, rofi layerrule = blur, waybar layerrule = blurpopups, waybar layerrule = ignorealpha 0.7, waybar layerrule = animation slide top, swaync-control-center layerrule = blur, swaync-notification-window layerrule = ignorezero, swaync-notification-window ======Config-End======== ```

Description

Hyprland idle CPU usage has increased after da956c8a979471282db6790f5fa5dcec320ec226. It used to be 0%, with occasional spikes to 0.2%, but now it is at a constant 0.4-0.6%, causing my CPU fans to never spin down.

How to reproduce

  1. Run Hyprland commit da956c8a979471282db6790f5fa5dcec320ec226 or later (yes, still happens on 33a5c8ce325e1657ec5571b57e05c6378706f4cd).
  2. strace -fo hyprland.txt -p $(pidof Hyprland) for a few seconds.
  3. See massive amounts of syscalls in hyprland.txt.

Crash reports, logs, images, videos

strace-bd526822deb9ed47c0b51b534817aa8541fff07b.txt (last good commit, notice file size) strace-da956c8a979471282db6790f5fa5dcec320ec226.txt (first bad commit, lots of timerfd_settime, recvmsg, epoll_wait)

Nothing spammy in Hyprland logs (with debug:disable_logs = false)

vaxerski commented 1 month ago

@fufexan regressor blame him

fufexan commented 1 month ago

Might be due to any changes in hyprutils. I don't think my config finding impl is that heavy, nor do I think it runs continuously.

ErrorNoInternet commented 1 month ago

nvm its still the same after i revert the commit wtf

edit: not anymore, seems to be dependent on something else

edit 2: gonna re bisect

edit 3: it happens when i have vesktop open (sometimes?) tray application(s)

vaxerski commented 1 month ago

welcome to software development amirite

ErrorNoInternet commented 1 month ago

its b03f41efec14273cf25c42d4cef326acc36cb319 im pretty sure now

reverted the commit, cpu usage 0

sometimes i have to restart fcitx5 (it runs on startup) once to trigger the issue, but any tray app works

no xwayland apps running

vaxerski commented 1 month ago

patch.txt tryt his

ErrorNoInternet commented 1 month ago

works, 0% cpu