Wireplumber update causing high CPU

Greetings lovely community,

After the recent wireplumber (0.4.10-3 -> 0.4.11-1) update just from the other day, I’ve noticed on at least 2-3 occasions that wireplumber is using an excessive amount of CPU and will have my CPU run high, which also causes my GPU fan to start spinning like there’s a wildfire inside my laptop. I can’t yet figure out how to reproduce the issue, it seems to happen randomly so far as I can tell for the moment. When it does happen, I’m not doing anything other than browsing in Vivaldi or playing some music in Rhythmbox. Has anyone else noticed this or come across it at all? I haven’t seen any high CPU issues mentioned on the Wireplumber GitLab page (yet), so perhaps many users aren’t effected by it, I am not sure.

When the wireplumber CPU spike hits, it’s constant. The only way I’ve noticed to stop it, is to close every single application that’s open or do a reboot and it goes away. However, it will randomly happen again. It is very odd behavior for sure, I’m positive this is a bug of some kind.

As you can see below, wireplumber is using the most CPU on my system, and at this moment, no audio/video is being played:
Screenshot from 2022-07-07 12-30-54

As you can also see below, the CPU is spiking up and down like crazy.
Screenshot from 2022-07-07 12-31-09

For reference below, under normal use (various apps like Vivaldi, Rhythmbox, Tilix are open): the CPU is not spiking at all:

Screenshot from 2022-07-07 12-43-53

System Info via inxi -Fxxxza
[scott@EndeavourOS ~]$ inxi -Fxxxza --no-host
System:
  Kernel: 5.18.9-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.1.0
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=8ab413ef-eda4-48cd-a8fb-c75c65bb6667 rw rootflags=subvol=@
    nvidia-drm.modeset=1 quiet
    resume=UUID=e352a98c-ec79-4c56-9ff9-8823a71e8512 loglevel=3 nowatchdog
    nvme_load=YES
  Desktop: GNOME v: 42.3.1 tk: GTK v: 3.24.34 wm: gnome-shell dm: GDM
    v: 42.0 Distro: EndeavourOS base: Arch Linux
Machine:
  Type: Laptop System: Acer product: Aspire E5-576G v: V1.32
    serial: <superuser required>
  Mobo: KBL model: Ironman_SK v: V1.32 serial: <superuser required>
    UEFI: Insyde v: 1.32 date: 10/24/2017
Battery:
  ID-1: BAT1 charge: 11.7 Wh (100.0%) condition: 11.7/62.2 Wh (18.8%)
    volts: 12.6 min: 11.1 model: PANASONIC AS16B5J type: Li-ion
    serial: <filter> status: full
CPU:
  Info: model: Intel Core i5-8250U bits: 64 type: MT MCP arch: Coffee Lake
    gen: core 8 built: 2017 process: Intel 14nm family: 6 model-id: 0x8E (142)
    stepping: 0xA (10) microcode: 0xF0
  Topology: cpus: 1x cores: 4 tpc: 2 threads: 8 smt: enabled cache:
    L1: 256 KiB desc: d-4x32 KiB; i-4x32 KiB L2: 1024 KiB desc: 4x256 KiB
    L3: 6 MiB desc: 1x6 MiB
  Speed (MHz): avg: 3400 high: 3401 min/max: 400/3400 scaling:
    driver: intel_pstate governor: powersave cores: 1: 3401 2: 3400 3: 3400
    4: 3400 5: 3400 6: 3400 7: 3400 8: 3400 bogomips: 28800
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities:
  Type: itlb_multihit status: KVM: VMX disabled
  Type: l1tf
    mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data mitigation: Clear CPU buffers; SMT vulnerable
  Type: spec_store_bypass
    mitigation: Speculative Store Bypass disabled via prctl
  Type: spectre_v1
    mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, IBRS_FW,
    STIBP: conditional, RSB filling
  Type: srbds mitigation: Microcode
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel UHD Graphics 620 vendor: Acer Incorporated ALI driver: i915
    v: kernel arch: Gen9.5 process: Intel 14nm built: 2016-20 ports:
    active: eDP-1 empty: DP-1,HDMI-A-1 bus-ID: 00:02.0 chip-ID: 8086:5917
    class-ID: 0300
  Device-2: NVIDIA GP108M [GeForce MX150] vendor: Acer Incorporated ALI
    driver: nvidia v: 515.57 alternate: nouveau,nvidia_drm non-free: 515.xx+
    status: current (as of 2022-06) arch: Maxwell process: TSMC 28nm
    built: 2014-19 pcie: gen: 3 speed: 8 GT/s lanes: 4 bus-ID: 01:00.0
    chip-ID: 10de:1d10 class-ID: 0302
  Device-3: Chicony HD WebCam type: USB driver: uvcvideo bus-ID: 1-7:4
    chip-ID: 04f2:b571 class-ID: 0e02
  Display: x11 server: X.Org v: 21.1.3 with: Xwayland v: 22.1.2
    compositor: gnome-shell driver: X: loaded: modesetting,nvidia gpu: i915
    display-ID: :1 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x286mm (20.00x11.26")
    s-diag: 583mm (22.95")
  Monitor-1: eDP-1 mapped: eDP-1-1 model: Najing CEC Panda LM156LF1L03
    built: 2017 res: 1920x1080 hz: 60 dpi: 142 gamma: 1.2
    size: 344x194mm (13.54x7.64") diag: 395mm (15.5") ratio: 16:9
    modes: 1920x1080
  OpenGL: renderer: NVIDIA GeForce MX150/PCIe/SSE2 v: 4.6.0 NVIDIA 515.57
    direct render: Yes
Audio:
  Device-1: Intel Sunrise Point-LP HD Audio vendor: Acer Incorporated ALI
    driver: snd_hda_intel v: kernel alternate: snd_soc_skl bus-ID: 00:1f.3
    chip-ID: 8086:9d71 class-ID: 0403
  Sound Server-1: ALSA v: k5.18.9-zen1-1-zen running: yes
  Sound Server-2: PulseAudio v: 16.1 running: no
  Sound Server-3: PipeWire v: 0.3.54 running: yes
Network:
  Device-1: Intel Dual Band Wireless-AC 3168NGW [Stone Peak] driver: iwlwifi
    v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1 bus-ID: 03:00.0
    chip-ID: 8086:24fb class-ID: 0280
  IF: wlan0 state: up mac: <filter>
  Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: Acer Incorporated ALI driver: r8169 v: kernel pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 port: 3000 bus-ID: 04:00.1 chip-ID: 10ec:8168
    class-ID: 0200
  IF: enp4s0f1 state: down mac: <filter>
Bluetooth:
  Device-1: Intel Wireless-AC 3168 Bluetooth type: USB driver: btusb v: 0.8
    bus-ID: 1-5:3 chip-ID: 8087:0aa7 class-ID: e001
  Report: rfkill ID: hci0 rfk-id: 2 state: up address: see --recommends
Drives:
  Local Storage: total: 238.47 GiB used: 138.52 GiB (58.1%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/sda maj-min: 8:0 vendor: SK Hynix model: HFS256G39TND-N210A
    size: 238.47 GiB block-size: physical: 4096 B logical: 512 B
    speed: 6.0 Gb/s type: SSD serial: <filter> rev: 1P10 scheme: GPT
Partition:
  ID-1: / raw-size: 229.37 GiB size: 229.37 GiB (100.00%)
    used: 138.51 GiB (60.4%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 576 KiB (0.2%) fs: vfat dev: /dev/sda1 maj-min: 8:1
  ID-3: /home raw-size: 229.37 GiB size: 229.37 GiB (100.00%)
    used: 138.51 GiB (60.4%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
  ID-4: /var/log raw-size: 229.37 GiB size: 229.37 GiB (100.00%)
    used: 138.51 GiB (60.4%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default)
  ID-1: swap-1 type: partition size: 8.8 GiB used: 0 KiB (0.0%)
    priority: -2 dev: /dev/sda3 maj-min: 8:3
Sensors:
  System Temperatures: cpu: 67.0 C pch: 59.5 C mobo: N/A gpu: nvidia
    temp: 57 C
  Fan Speeds (RPM): N/A
Info:
  Processes: 311 Uptime: 57m wakeups: 1 Memory: 15.5 GiB used: 5 GiB (32.3%)
  Init: systemd v: 251 default: graphical tool: systemctl Compilers:
  gcc: 12.1.0 Packages: 1267 pacman: 1214 lib: 329 flatpak: 53 Shell: Bash
  v: 5.1.16 running-in: tilix inxi: 3.3.19

have you tried restarting the wireplumber service to see if the problem goes away temporarily?

systemctl --user restart wireplumber.service
1 Like

Thanks for the instant reply, I’ll run that command now and it’s good to know also for in the future when the CPU runs high again. But I’m not so sure if that will inevitably fix the possibly underlying bug :beetle: :x: :sweat_smile:

And try looking at wpctl command for more details

wpctl status
1 Like

Ah good to know another useful command. Below is what it typically looks like under normal use. I’ll have to wait and see if the CPU goes high again to check it’s status, but for now this is just under normal use with no high CPU:

[scott@EndeavourOS ~]$ wpctl status
PipeWire 'pipewire-0' [0.3.54, scott@EndeavourOS, cookie:2854602376]
 └─ Clients:
        32. pipewire-pulse                      [0.3.54, scott@EndeavourOS, pid:1143]
        40. GNOME Volume Control Media Keys     [0.3.54, scott@EndeavourOS, pid:1295]
        53. GSConnect                           [0.3.54, scott@EndeavourOS, pid:1524]
        54. GNOME Shell Volume Control          [0.3.54, scott@EndeavourOS, pid:1094]
        55. Mute on Middle Click extension      [0.3.54, scott@EndeavourOS, pid:1094]
        62. xdg-desktop-portal                  [0.3.54, scott@EndeavourOS, pid:2096]
        68. Rhythmbox                           [0.3.54, scott@EndeavourOS, pid:8446]
        69. Chromium input                      [0.3.54, scott@EndeavourOS, pid:3452]
        72. Podcasts                            [0.3.54, scott@EndeavourOS, pid:2]
        75. wpctl                               [0.3.54, scott@EndeavourOS, pid:8927]
        85. WirePlumber                         [0.3.54, scott@EndeavourOS, pid:8390]
        87. WirePlumber [export]                [0.3.54, scott@EndeavourOS, pid:8390]

Audio
 ├─ Devices:
 │      47. UE BOOM 2                           [bluez5]
 │      52. Built-in Audio                      [alsa]
 │  
 ├─ Sinks:
 │  *   34. UE BOOM 2                           [vol: 0.22]
 │      63. Built-in Audio Analog Stereo        [vol: 0.34]
 │  
 ├─ Sink endpoints:
 │  
 ├─ Sources:
 │  *   64. Built-in Audio Analog Stereo        [vol: 0.00 MUTED]
 │  
 ├─ Source endpoints:
 │  
 └─ Streams:
        81. Rhythmbox                                                   
             33. output_FL       > UE BOOM 2:playback_FL	[paused]
             37. output_FR       > UE BOOM 2:playback_FR	[paused]
        83. Podcasts                                                    
             35. output_FL       > UE BOOM 2:playback_FL	[active]
             39. output_FR       > UE BOOM 2:playback_FR	[active]

Video
 ├─ Devices:
 │      46. HD WebCam                           [v4l2]
 │      50. HD WebCam                           [v4l2]
 │  
 ├─ Sinks:
 │  
 ├─ Sink endpoints:
 │  
 ├─ Sources:
 │  *   48. HD WebCam (V4L2)                   
 │  
 ├─ Source endpoints:
 │  
 └─ Streams:

Settings
 └─ Default Configured Node Names:
         0. Audio/Sink    bluez_output.C0_28_8D_44_77_7A.a2dp-sink
         1. Audio/Source  alsa_input.pci-0000_00_1f.3.analog-stereo

I am not seeing that on my end. With audio running (Online Radio in Tuner):

Screenshot from 2022-07-07 18-58-40

But it sure looks like it does like to do a whole lot of disk writing :thinking:

wpctl status
PipeWire 'pipewire-0' [0.3.54, pebcak@arch-gnome, cookie:224919591]
 └─ Clients:
        32. pipewire-pulse                      [0.3.54, pebcak@arch-gnome, pid:1226]
        33. WirePlumber                         [0.3.54, pebcak@arch-gnome, pid:1225]
        34. WirePlumber [export]                [0.3.54, pebcak@arch-gnome, pid:1225]
        48. GNOME Shell Volume Control          [0.3.54, pebcak@arch-gnome, pid:1159]
        49. GNOME Volume Control Media Keys     [0.3.54, pebcak@arch-gnome, pid:1328]
        50. xdg-desktop-portal                  [0.3.54, pebcak@arch-gnome, pid:1612]
        51. Mutter                              [0.3.54, pebcak@arch-gnome, pid:1159]
        52. gsd-power                           [0.3.54, pebcak@arch-gnome, pid:1330]
        53. com.github.louis77.tuner            [0.3.54, pebcak@arch-gnome, pid:2]
        58. Firefox                             [0.3.54, pebcak@arch-gnome, pid:9]
        61. wpctl                               [0.3.54, pebcak@arch-gnome, pid:5589]

Audio
 ├─ Devices:
 │      40. Built-in Audio                      [alsa]
 │  
 ├─ Sinks:
 │  *   45. Built-in Audio Analog Stereo        [vol: 0.35]
 │  
 ├─ Sink endpoints:
 │  
 ├─ Sources:
 │  *   46. Built-in Audio Analog Stereo        [vol: 0.00 MUTED]
 │  
 ├─ Source endpoints:
 │  
 └─ Streams:
        54. com.github.louis77.tuner                                    
             56. output_FL       > ALC3271 Analog:playback_FL	[active]
             59. output_FR       > ALC3271 Analog:playback_FR	[active]

Video
 ├─ Devices:
 │  
 ├─ Sinks:
 │  
 ├─ Sink endpoints:
 │  
 ├─ Sources:
 │  
 ├─ Source endpoints:
 │  
 └─ Streams:

Settings
 └─ Default Configured Node Names:
         0. Audio/Sink    alsa_output.pci-0000_00_1f.3.analog-stereo
1 Like

I was exploring wireplumber yesterday to fix audio issues in my Raspberry Pi :wink:. Learnt a lot yesterday.

1 Like

I’m not yet sure when exactly it happens or gets triggered. It doesn’t happen when I first boot my laptop, it just seems to happen randomly at the moment. It could just be my combination of hardware/bluetooth speaker or it could be a bug that happens either while audio is playing or gets initiated when audio is stopped after a certain time being idle or could happen when there’s no audio being played. Feel free to check it from time to time, but it may be hard to check if it happens randomly and also you could be unaffected by it too is a possibility.

@sradjoker looks like all your reading has paid off I’d say :smiley:

1 Like

I’ll keep an eye on it an post here if I find some out-of-ordinary CPU usage.

1 Like

Comparing our wpctl status you have mutter listed, but I do not. Hmm. Not sure if that is of any significance or not. Thanks for checking though of course :+1:

1 Like

KDE here

Screenshot_20220707_131325

1 Like

I knew I should’ve posted this strictly in the Gnome section :stuck_out_tongue: :broccoli:
Thanks for checking though, it looks like it might not even affect you.

My CPU is just idling…

Screenshot_20220707_131511

2 Likes

Join team Plasma
image

2 Likes

Ya CPU .7% … :wink:

ok, just played a YouTube video, and it was spiking. And even thought the video is done. It’s still spiking right now.

[scott@EndeavourOS ~]$ systemctl --user status wireplumber
● wireplumber.service - Multimedia Service Session Manager
     Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-07-07 13:55:42 EDT; 58min ago
   Main PID: 1268 (wireplumber)
      Tasks: 4 (limit: 19028)
     Memory: 11.6M
        CPU: 13min 13.533s
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/wireplumber.service
             └─1268 /usr/bin/wireplumber

Jul 07 14:28:43 EndeavourOS wireplumber[1268]: error reading timerfd: Resource temporarily unavailable
Jul 07 14:29:34 EndeavourOS wireplumber[1268]: error reading timerfd: Resource temporarily unavailable
Jul 07 14:30:26 EndeavourOS wireplumber[1268]: error reading timerfd: Resource temporarily unavailable
Jul 07 14:33:04 EndeavourOS wireplumber[1268]: error reading timerfd: Resource temporarily unavailable
Jul 07 14:33:10 EndeavourOS wireplumber[1268]: error reading timerfd: Resource temporarily unavailable
Jul 07 14:33:33 EndeavourOS wireplumber[1268]: error reading timerfd: Resource temporarily unavailable
Jul 07 14:33:46 EndeavourOS wireplumber[1268]: error reading timerfd: Resource temporarily unavailable
Jul 07 14:34:10 EndeavourOS wireplumber[1268]: error reading timerfd: Resource temporarily unavailable
Jul 07 14:34:40 EndeavourOS wireplumber[1268]: 0x555da3db6158: error 24
Jul 07 14:34:40 EndeavourOS wireplumber[1268]: (bluez_output.C0_28_8D_44_77_7A.a2dp-sink-19) running -> error (Received error event)
[scott@EndeavourOS ~]$ wpctl status
PipeWire 'pipewire-0' [0.3.54, scott@EndeavourOS, cookie:1512828212]
 └─ Clients:
        32. WirePlumber                         [0.3.54, scott@EndeavourOS, pid:1268]
        33. WirePlumber [export]                [0.3.54, scott@EndeavourOS, pid:1268]
        34. pipewire-pulse                      [0.3.54, scott@EndeavourOS, pid:1269]
        40. GNOME Volume Control Media Keys     [0.3.54, scott@EndeavourOS, pid:1440]
        53. GSConnect                           [0.3.54, scott@EndeavourOS, pid:1753]
        54. GNOME Shell Volume Control          [0.3.54, scott@EndeavourOS, pid:1221]
        55. Mute on Middle Click extension      [0.3.54, scott@EndeavourOS, pid:1221]
        56. xdg-desktop-portal                  [0.3.54, scott@EndeavourOS, pid:2275]
        63. Rhythmbox                           [0.3.54, scott@EndeavourOS, pid:2376]
        69. Chromium input                      [0.3.54, scott@EndeavourOS, pid:3507]
        82. wpctl                               [0.3.54, scott@EndeavourOS, pid:7738]

Audio
 ├─ Devices:
 │      41. Built-in Audio                      [alsa]
 │      62. UE BOOM 2                           [bluez5]
 │  
 ├─ Sinks:
 │      50. Built-in Audio Analog Stereo        [vol: 0.33]
 │  *   60. UE BOOM 2                           [vol: 0.09]
 │  
 ├─ Sink endpoints:
 │  
 ├─ Sources:
 │  *   51. Built-in Audio Analog Stereo        [vol: 0.00 MUTED]
 │  
 ├─ Source endpoints:
 │  
 └─ Streams:
        64. Rhythmbox                                                   
             66. output_FL       > ALC255 Analog:playback_FL	[init]
             68. output_FR       > ALC255 Analog:playback_FR	[init]

Video
 ├─ Devices:
 │      42. HD WebCam                           [v4l2]
 │      43. HD WebCam                           [v4l2]
 │  
 ├─ Sinks:
 │  
 ├─ Sink endpoints:
 │  
 ├─ Sources:
 │  *   44. HD WebCam (V4L2)                   
 │  
 ├─ Source endpoints:
 │  
 └─ Streams:

Settings
 └─ Default Configured Node Names:
         0. Audio/Sink    bluez_output.C0_28_8D_44_77_7A.a2dp-sink
         1. Audio/Source  alsa_input.pci-0000_00_1f.3.analog-stereo

Screenshot from 2022-07-07 14-57-26

I closed the Vivaldi tab the video was playing in, CPU still high. So even though I wasn’t playing music in Rhythmbox I had it open, so I decided to close it, and thought brought the CPU down back to normal instantly. Perhaps there is something with wireplumber and Rhythmbox I don’t know, but it is very strange behavior. I think I’m gonna have to report this upstream later this evening, this is pretty buggy behavior.

I’ve said this somewhere else before, Gnome42 is a beast, hard to tame.

Ok, I’m running old hardware. That’s why I switched to XFCE-DE…

My fans always peak on YT or on Gnome software-center. In order to keep my ole’ hardware going, I stay away from Gnome (or Plasma for that matter) wherever I can.

Just sayin’…

:v:

Its a pipewire issue afaik

there was some reporting on it over on the PW gitlab

I see this one that’s a week old, but no solution has been found: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2484

Edit: possibly this one too:
https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/152

1 Like

Just wanted to follow up with a quick update. It looks like there’s a new merge request from one of the Pipewire/Wireplumber devs with a potential fix to address this high CPU usage that has been affecting various users across various distros from Fedora, Arch, and even openSUSE when running thewireplumber 0.4.11.x series. You can see the merge request here:

https://gitlab.freedesktop.org/pipewire/wireplumber/-/merge_requests/398

3 Likes