Skip to content

StreamController uses a lot of CPU #340

Closed

Description

@martin-schwenke

Describe the bug
I consistently see this type of behaviour if I run top:

 9488 martins   20   0 4771304   4.3g   6528 R  37.1   6.8     24,41 flatpak-session

That is, the flatpak session is using ~37% of a CPU thread. Sometimes a little less, sometimes a little more. This is enough to keep my NUC's fan running above the minimum level.

Is this level of CPU usage expected?

To Reproduce
flatpak version of SteamController is running, window is closed, not pressing buttons on StreamDeck original.

Expected behavior
CPU usage close to idle.

Screenshots
N/A

Additional context
Running on Debian testing with flatpak:

$ flatpak info com.core447.StreamController

StreamController - Control your Elgato Stream Decks with plugin support

          ID: com.core447.StreamController
         Ref: app/com.core447.StreamController/x86_64/stable
        Arch: x86_64
      Branch: stable
     Version: 1.5.0-beta.6
     License: GPL-3.0-or-later
      Origin: flathub
  Collection: org.flathub.Stable
Installation: user
   Installed: 672.2 MB
     Runtime: org.gnome.Platform/x86_64/47
         Sdk: org.gnome.Sdk/x86_64/47

      Commit: ed299dadd910df89fe6e74eec3fd5f85788e1b017bcff12446aa34d05b34a16a
      Parent: fef87e9c5bb8a9cc45a91c9f689ed1ea17524d73db8317503e3fb671e28645d9
     Subject: Bump version to 1.5.0-beta.7 (#20) (b0e3ee62)
        Date: 2024-11-20 09:23:34 +0000

Desktop is XFCE 4 with X11.

xprop is being run several times every second.

I have tried installing via pip to see if that makes a difference, but then I see errors like:

ValueError: Namespace Gtk not available for version 4.0

when running python3 main.py.

Activity

  1. ImDevinC commented on Mar 3, 2025

    @ImDevinC
    Contributor

    Can you provide the log from streamcontroller so we can see what streamcontroller is doing

  2. martin-schwenke commented on Mar 3, 2025

    @martin-schwenke
    Author

    TL;DR: Upgraded, restarted after killing flatpak-session, doesn't happen anymore... closing.

    I just replugged it to be able to provide logs from a sane point. After 10 minutes it blanked, so I pressed a button to wake it. The logs seem to indicate that it is doing anything:

    2025-03-03 18:22:43.552 | INFO     | src.backend.DeckManagement.DeckManager:on_connect:135 - Device /dev/bus/usb/001/038 with info: {'ID_MODEL_ID': '006d', 'ID_MODEL': 'Stream_Deck', 'ID_MODEL_FROM_DATABASE': 'Stream Deck original V2', 'ID_VENDOR': 'Elgato', 'ID_VENDOR_ID': '0fd9', 'ID_VENDOR_FROM_DATABASE': 'Elgato Systems GmbH', 'ID_USB_INTERFACES': ('030000',), 'ID_USB_CLASS_FROM_DATABASE': '', 'DEVNAME': '/dev/bus/usb/001/038', 'DEVTYPE': 'usb_device', 'ID_SERIAL': 'Elgato_Stream_Deck_AL45K2C69231'} connected
    2025-03-03 18:22:43.666 | INFO     | src.backend.PluginManager.ActionBase:__init__:76 - Loaded action Hotkey with id com_core447_OSPlugin::Hotkey
    2025-03-03 18:22:43.667 | INFO     | src.backend.PluginManager.ActionBase:__init__:76 - Loaded action Run Command with id com_core447_OSPlugin::RunCommand
    2025-03-03 18:22:43.667 | INFO     | src.backend.PluginManager.ActionBase:__init__:76 - Loaded action Change Page with id com_core447_DeckPlugin::ChangePage
    2025-03-03 18:22:43.667 | INFO     | src.backend.PluginManager.ActionBase:__init__:76 - Loaded action Change Page with id com_core447_DeckPlugin::ChangePage
    2025-03-03 18:22:43.667 | INFO     | src.backend.PluginManager.ActionBase:__init__:76 - Loaded action Hotkey with id com_core447_OSPlugin::Hotkey
    2025-03-03 18:22:43.667 | INFO     | src.backend.PluginManager.ActionBase:__init__:76 - Loaded action Change Page with id com_core447_DeckPlugin::ChangePage
    2025-03-03 18:22:43.667 | INFO     | src.backend.PluginManager.ActionBase:__init__:76 - Loaded action Change Page with id com_core447_DeckPlugin::ChangePage
    2025-03-03 18:22:43.668 | INFO     | src.backend.PluginManager.ActionBase:__init__:76 - Loaded action Run Command with id com_core447_OSPlugin::RunCommand
    2025-03-03 18:22:43.668 | INFO     | src.backend.PluginManager.ActionBase:__init__:76 - Loaded action Change Page with id com_core447_DeckPlugin::ChangePage
    2025-03-03 18:22:43.668 | DEBUG    | src.backend.PageManagement.Page:load:78 - Loaded page 1_Main in 0.00 seconds
    2025-03-03 18:22:43.668 | INFO     | src.backend.DeckManagement.DeckController:load_page:681 - Loading page 1_Main on deck AL45K2C69231
    2025-03-03 18:22:43.753 | ERROR    | src.backend.DeckManagement.DeckController:update_ui_on_page_change:646 - 'NoneType' object has no attribute 'page_settings' -> This is okay if you just activated your first deck.
    2025-03-03 18:22:43.754 | INFO     | src.backend.DeckManagement.Subclasses.ScreenSaver:set_time:54 - Setting screen saver time delay to 10 minutes
    2025-03-03 18:22:43.765 | INFO     | src.backend.DeckManagement.DeckController:load_background:533 - Loading background in thread: 139948002891456
    2025-03-03 18:22:43.765 | INFO     | src.backend.DeckManagement.DeckController:load_page:712 - Loaded page 1_Main on deck AL45K2C69231
    2025-03-03 18:22:43.881 | INFO     | src.backend.DeckManagement.DeckController:load_all_inputs:619 - Loading all inputs took 0.024991989135742188 seconds
    2025-03-03 18:22:43.899 | DEBUG    | src.backend.DeckManagement.DeckController:update_all_inputs:443 - Updating all inputs took 0.018097877502441406 seconds
    2025-03-03 18:24:10.110 | INFO     | src.app:on_reopen:116 - awake
    2025-03-03 18:32:43.754 | INFO     | src.backend.DeckManagement.Subclasses.ScreenSaver:show:93 - Showing screen saver
    2025-03-03 18:32:43.861 | DEBUG    | src.backend.DeckManagement.DeckController:update_all_inputs:443 - Updating all inputs took 0.008691072463989258 seconds
    2025-03-03 18:34:48.118 | INFO     | src.backend.DeckManagement.Subclasses.ScreenSaver:hide:124 - Hiding screen saver
    2025-03-03 18:34:48.127 | INFO     | src.backend.DeckManagement.DeckController:load_page:681 - Loading page 1_Main on deck AL45K2C69231
    2025-03-03 18:34:48.215 | INFO     | src.backend.DeckManagement.DeckController:load_background:533 - Loading background in thread: 139948002891456
    2025-03-03 18:34:48.216 | INFO     | src.backend.DeckManagement.DeckController:load_page:712 - Loaded page 1_Main on deck AL45K2C69231
    2025-03-03 18:34:48.324 | INFO     | src.backend.DeckManagement.DeckController:load_all_inputs:619 - Loading all inputs took 0.029494047164916992 seconds
    2025-03-03 18:34:48.339 | DEBUG    | src.backend.DeckManagement.DeckController:update_all_inputs:443 - Updating all inputs took 0.013866186141967773 seconds
    

    Note that the busy process is the flatpak-session process associated with StreamController.

    OK, I noticed that the flatpak-session process was quite old - older than the currently running StreamController (which I had updated some time in the last couple of days, and restarted). Stopped StreamController, killed flatpak-session, restarted StreamController. No busy flatpak-session process anymore. I had tried this little dance previously and a busy flatpak-session process always eventuated.

    Something, somewhere looks to be fixed, so I'll close this. If I press some key on my Stream Deck and this starts happening again, I'll reopen. 😉

    Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    • Status
      No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions