I did an experiment. Rebooted the computer in the morning and after running it 8 hours completely idle, here are the top processes:
$ ps -ef|awk '{print $7 " " $8}'|sort -r|head
TIME CMD
00:25:03 [<b>nv_queue</b>]
00:13:45 /usr/libexec/Xorg
00:06:02 gkrellm
00:02:47 marco
00:01:22 audacious
00:00:52 [<b>nvidia-modeset/</b>]
00:00:35 /usr/libexec/mate-panel/clock-applet
00:00:33 [<b>irq/140-nvidia</b>]
00:00:12 [kworker/2:3-events_power_efficient]
There’s a new kernel thread with version 430 called nv_queue and that eats up 5% CPU non-stop.
It’s the same with 418.74, only there’s no “nv_queue” process, but instead, a “kworker/x:y-events” process, with x corresponding to the CPU which receives IRQ 140 (irq/140-nvidia as seen above). In 430.14, the nv_queue thread can actually be scheduled on different cores, instead of always putting the load on the core receiving IRQ from GPU - so this is an improvement compared to 418, but still - why does it need 5% CPU when the GPU does almost nothing?
Interestingly, this 5% load happens ONLY IN P8 performance mode. When the card is in P0/P2/P5 mode, nv_queue (or kworker in older versions) suddenly goes silent. If I set the card to performance mode with nvidia-settings, nv_queue disappears from top, permanently.
So what is nv_queue and why does it use up my CPU?
Or perhaps it shouldn’t do that and my hardware is broken in some way? I did a lot of testing, switching GPU BIOS, disabling PCIeGen3, MSI, ACPI, APM… nothing helps. Unfortunately I don’t have hardware to swap out GPU/CPU/motherboard and try. But I think it’s fine, everything just works ;)
Full specs:
Fedora 30, kernel 5.0.17, nvidia driver 430.14 from rpmfusion for rawhide (yum --releasever=31 update *nvidia*). On 418.74 same issue manifests with kworker thread instead of nv_queue. Haven’t tried pre-5.0 kernel or older nvidia driver (yet).
Hardware is a GTX 1080 Ti paired with an i7-9700K on a Z390 board.
nvidia-bug-report.log.gz (1.2 MB)