[Nouveau] Accumulating CPU load from Xorg process with DRI3
Ilia Mirkin
imirkin at alum.mit.edu
Thu Aug 13 22:47:50 UTC 2020
I'm aware of this issue, and am experiencing it myself.
The issue is that drmmode_event_handler takes up more and more CPU
time. It seems like some events are being "left behind". I haven't had
time to debug it further yet though.
I also have DRI3 enabled, but only very rarely do I make use of my
secondary GPUs, and I'm pretty sure I've seen the problem happen
without any PRIME usage.
Cheers,
-ilia
On Thu, Aug 13, 2020 at 6:45 PM Andrew Randrianasulu
<randrianasulu at gmail.com> wrote:
>
> I observed this bug for quite some time, but so far I workarounded it
> with just setting DRI2 (default) in xorg.conf.d/20-nouveau.conf
>
> Now with two GPU i iwsh to use DRI3, so right now it set up like this:
>
> cat /etc/X11/xorg.conf.d/20-nouveau.conf
> Section "Device"
> Identifier "Card0"
> Driver "nouveau"
> Option "PageFlip" "1"
> #Option "AccelMethod" "glamor"
> Option "DRI" "3"
>
> But just after two hours of uptime X already eating some CPU:
>
>
> op - 01:30:49 up 2:45, 1 user, load average: 1,12, 0,93, 0,84
> Tasks: 210 total, 1 running, 209 sleeping, 0 stopped, 0 zombie
> %Cpu(s): 12,1 us, 3,9 sy, 0,0 ni, 81,7 id, 0,7 wa, 0,0 hi, 1,6 si, 0,0 st
> MiB Mem : 11875,3 total, 6416,4 free, 1634,8 used, 3824,1 buff/cache
> MiB Swap: 1145,0 total, 1145,0 free, 0,0 used. 9969,7 avail Mem
>
> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
> 1198 root 20 0 146160 78828 28160 S 35,8 0,6 30:41.37 Xorg
> 1285 guest 20 0 59776 17332 13756 S 11,6 0,1 16:12.83 xmms
> 4006 guest 20 0 1743952 919312 120628 S 10,9 7,6 20:51.01 seamonkey
> 1278 guest 20 0 101508 48528 30496 S 3,0 0,4 4:03.21 ktorrent
> 1274 guest 20 0 43368 31784 23684 S 2,0 0,3 0:29.43 konsole
> 1259 guest 20 0 43092 28232 23640 S 1,3 0,2 0:21.53 kicker
> 1255 guest 20 0 6560 4160 2720 S 1,0 0,0 1:00.90 kompmgr
> 1293 guest 20 0 40164 21328 18636 S 1,0 0,2 1:30.50 gkrellm
> 1254 guest 20 0 31616 21832 18944 S 0,7 0,2 0:06.49 kwin
>
> in ~1 day it will eat full core from my AMD FX-4300 and X will become sluggish ...
>
> I tried to trace it with operf 1.2.0:
>
> operf --pid 1198
>
> operf: Press Ctl-c or 'kill -SIGINT 7787' to stop profiling
> operf: Profiler started
> ^C
> Profiling done.
>
> root at slax:~# opreport
> Using /root/oprofile_data/samples/ for samples directory.
> CPU: AMD64 family15h, speed 3800 MHz (estimated)
> Counted CPU_CLK_UNHALTED events (CPU Clocks not Halted) with a unit mask of 0x00 (No unit mask) count 100000
> CPU_CLK_UNHALT...|
> samples| %|
> ------------------
> 78166 100.000 Xorg
> CPU_CLK_UNHALT...|
> samples| %|
> ------------------
> 62905 80.4762 nouveau_drv.so
> 5648 7.2256 kallsyms
> 4186 5.3553 Xorg
> 1419 1.8154 libpixman-1.so.0.38.0
> 1038 1.3279 nouveau
> 687 0.8789 libc-2.30.so
> 632 0.8085 libexa.so
> 510 0.6525 libdrm_nouveau.so.2.0.0
> 402 0.5143 libfb.so
> 259 0.3313 drm
> 230 0.2942 ttm
> 108 0.1382 libpthread-2.30.so
> 47 0.0601 libdrm.so.2.4.0
> 34 0.0435 [vdso] (tgid:1198 range:0xf7fbf000-0xf7fbffff)
> 27 0.0345 evdev_drv.so
> 7 0.0090 snd_hda_codec
> 5 0.0064 r8169
> 5 0.0064 snd_pcm
> 5 0.0064 libXfont2.so.2.0.0
> 3 0.0038 snd_aloop
> 3 0.0038 libglx.so
> 2 0.0026 kvm
> 2 0.0026 snd_timer
> 1 0.0013 snd_hda_core
> 1 0.0013 snd_hda_intel
>
> so, nouveau_drv itself is major CPU eater ....
>
> I'll try to rebuild it with debug symbols enabled, and hopefully it will be enough
> for at least seeing who eats all those cycles ....
>
> Sorry for so many emails, just i keep discovering new bugs as I try new things!
> _______________________________________________
> Nouveau mailing list
> Nouveau at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/nouveau
More information about the Nouveau
mailing list