Regression: wayland compositor lag after updated microcode
Before I start, please excuse my lack of knowledge on the topic. Please let me know if there is anything missing in the attached logs.
I am running sway wayland compositor, few days ago it began lagging when moving the mouse cursor under certain conditions with CPU usage in hundreds of %. I have correlated this regression with Nvidia GPU microcode update as it was the only thing that changed in that time period. Also, shortly after the Nvidia GPU microcode update, the following error began appearing in kernel logs:
Dec 30 15:41:41 [kernel] [ 2.152283] nouveau 0000:0a:00.0: DRM: failed to create kernel channel, -22
Dec 30 15:41:41 [kernel] [ 2.152283] nouveau 0000:0a:00.0: DRM: failed to create kernel channel, -22
I am fairly sure this is caused by the update as I have logs ranging 3 weeks back and it doesn't appear there. All nouveau-related kernel output:
Dec 30 15:41:41 [kernel] [ 2.019045] fb0: switching to nouveaufb from EFI VGA
Dec 30 15:41:41 [kernel] [ 2.019086] nouveau 0000:0a:00.0: vgaarb: deactivate vga console
Dec 30 15:41:41 [kernel] [ 2.019142] nouveau 0000:0a:00.0: NVIDIA TU117 (167000a1)
Dec 30 15:41:41 [kernel] [ 2.134968] nouveau 0000:0a:00.0: bios: version 90.17.1c.00.69
Dec 30 15:41:41 [kernel] [ 2.135379] nouveau 0000:0a:00.0: pmu: firmware unavailable
Dec 30 15:41:41 [kernel] [ 2.135429] nouveau 0000:0a:00.0: gr: firmware unavailable
Dec 30 15:41:41 [kernel] [ 2.135433] nouveau 0000:0a:00.0: sec2: firmware unavailable
Dec 30 15:41:41 [kernel] [ 2.135756] nouveau 0000:0a:00.0: fb: 4096 MiB GDDR5
Dec 30 15:41:41 [kernel] [ 2.144770] nouveau 0000:0a:00.0: fb: VPR locked, but no scrubber binary!
Dec 30 15:41:41 [kernel] [ 2.152012] nouveau 0000:0a:00.0: DRM: VRAM: 4096 MiB
Dec 30 15:41:41 [kernel] [ 2.152013] nouveau 0000:0a:00.0: DRM: GART: 536870912 MiB
Dec 30 15:41:41 [kernel] [ 2.152014] nouveau 0000:0a:00.0: DRM: BIT table 'A' not found
Dec 30 15:41:41 [kernel] [ 2.152015] nouveau 0000:0a:00.0: DRM: BIT table 'L' not found
Dec 30 15:41:41 [kernel] [ 2.152015] nouveau 0000:0a:00.0: DRM: TMDS table version 2.0
Dec 30 15:41:41 [kernel] [ 2.152016] nouveau 0000:0a:00.0: DRM: DCB version 4.1
Dec 30 15:41:41 [kernel] [ 2.152017] nouveau 0000:0a:00.0: DRM: DCB outp 00: 01800f36 04600010
Dec 30 15:41:41 [kernel] [ 2.152018] nouveau 0000:0a:00.0: DRM: DCB outp 01: 01000f32 00020010
Dec 30 15:41:41 [kernel] [ 2.152018] nouveau 0000:0a:00.0: DRM: DCB outp 02: 01811f46 04600020
Dec 30 15:41:41 [kernel] [ 2.152019] nouveau 0000:0a:00.0: DRM: DCB outp 03: 01011f42 00020020
Dec 30 15:41:41 [kernel] [ 2.152019] nouveau 0000:0a:00.0: DRM: DCB outp 04: 02022f52 00020010
Dec 30 15:41:41 [kernel] [ 2.152020] nouveau 0000:0a:00.0: DRM: DCB outp 05: 04033f72 00020010
Dec 30 15:41:41 [kernel] [ 2.152021] nouveau 0000:0a:00.0: DRM: DCB conn 00: 00001046
Dec 30 15:41:41 [kernel] [ 2.152021] nouveau 0000:0a:00.0: DRM: DCB conn 01: 00002146
Dec 30 15:41:41 [kernel] [ 2.152022] nouveau 0000:0a:00.0: DRM: DCB conn 02: 00010261
Dec 30 15:41:41 [kernel] [ 2.152283] nouveau 0000:0a:00.0: DRM: failed to create kernel channel, -22
Dec 30 15:41:41 [kernel] [ 2.152495] nouveau 0000:0a:00.0: DRM: MM: using COPY for buffer copies
Dec 30 15:41:41 [kernel] [ 2.903688] nouveau 0000:0a:00.0: DRM: allocated 1920x1080 fb: 0x200000, bo 0000000043e4f1ed
Dec 30 15:41:41 [kernel] [ 2.903764] fbcon: nouveaudrmfb (fb0) is primary device
Dec 30 15:41:41 [kernel] [ 3.714723] nouveau 0000:0a:00.0: [drm] fb0: nouveaudrmfb frame buffer device
Dec 30 15:41:41 [kernel] [ 3.722389] [drm] Initialized nouveau 1.3.1 20120801 for 0000:0a:00.0 on minor 0
Dec 30 15:41:41 [kernel] [ 2.152283] nouveau 0000:0a:00.0: DRM: failed to create kernel channel, -22
Dec 30 15:41:41 [kernel] [ 7.147634] snd_hda_intel 0000:0a:00.1: bound 0000:0a:00.0 (ops nouveau_drm_exit [nouveau])
Wayland compositor's log seems to reference the issue with this line:
nvc0_screen_create:1046 - Base screen init failed: -19
GPU info:
# lspci | grep -i vga
0a:00.0 VGA compatible controller: NVIDIA Corporation TU117 [GeForce GTX 1650] (rev a1)
If there is anything I missed, please let me know.