microsoft / wslg

Enabling the Windows Subsystem for Linux to include support for Wayland and X server related scenarios
MIT License
10.21k stars 305 forks source link

Xwayland process stuck and begins to consume 100% CPU with NVIDIA GPU #552

Open Swicegood opened 3 years ago

Swicegood commented 3 years ago

Environment

Microsoft Windows [Version 10.0.22000.258] Release: 20.04` WLSg 1.0.26

Steps to reproduce

wsl --shutdown Open Ubuntu Prompt $ glxinfo

WSL logs:

versions.txt weston.log stderr.log dmesg.txt

Expected behavior

output from glxinfo

Actual behavior

It's hung.

Additional info:

In this machine I have an RTX 3060 and a GT710. If I disable the RTX 3060, then I do get output from glxinfo. I have tried this machine with only the RTX3060 installed. In that case it also fails

/dev/dxg is present

jaga@JAGA:/mnt/wslg$ ls /mnt/wslg/.X11-unix/ X0

system distro# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 2944 1780 ? Sl 20:20 0:00 /init root 2 0.0 0.0 3032 2036 ? Sl 20:20 0:00 /init root 6 0.0 0.0 2944 144 ? S 20:20 0:00 /init root 7 0.0 0.1 14040 6136 ? S 20:20 0:00 /usr/bin/WSLGd wslg 10 0.0 0.6 856596 34676 ? Sl 20:20 0:00 /usr/bin/weston --backend=rdp-backend.so --xwayland --s wslg 12 0.0 0.0 2856 4 ? S 20:20 0:00 /tools/init /mnt/c/Program Files/WindowsApps/MicrosoftC message+ 13 0.0 0.0 7164 3716 ? S 20:20 0:00 /usr/bin/dbus-daemon --syslog --nofork --nopidfile --sy wslg 14 0.0 0.1 233900 6872 ? Sl 20:20 0:00 /usr/bin/pulseaudio --log-target=file:/mnt/wslg/pulseau wslg 18 0.0 0.0 7032 372 ? Ss 20:20 0:00 /usr/bin/dbus-daemon --syslog --fork --print-pid 5 --pr wslg 20 0.0 0.1 14948 7772 ? S 20:20 0:00 /usr/libexec/weston-rdprail-shell root 47 0.0 0.0 2964 80 ? Ss 20:20 0:00 /init root 48 0.0 0.0 2964 96 ? R 20:20 0:00 /init root 49 0.0 0.0 7772 4516 pts/0 Ss 20:20 0:00 -bash root 73 0.0 0.0 3052 88 ? Ss 20:20 0:00 /init root 74 0.0 0.0 3052 104 ? S 20:20 0:00 /init wslg 75 0.0 0.0 10056 5044 pts/0 Ss 20:20 0:00 -bash wslg 88 0.0 0.0 5660 1684 pts/0 S+ 20:20 0:00 glxinfo wslg 89 99.3 0.7 219300 44308 ? Rl 20:20 11:06 /usr/bin/Xwayland :0 -rootless -core -listen 73 -wm 74 root 95 0.0 0.0 3228 2004 pts/0 R+ 20:31 0:00 ps -aux

Swicegood commented 3 years ago

Possibly the same as #505 I have filed a feedback hub and linked to this (552) issue

hideyukn88 commented 3 years ago

@Swicegood, thanks for reporting the issue, would you please take core dump of Xwayland process and share with us? thanks!

Swicegood commented 3 years ago

@hideyukn88 Ok hope this is it coreXwayland.zip

antiwinter commented 2 years ago

What's the status of this issue? I have got the same issue.

To add some clues:

  1. At first I was using an AMD GPU and the GUI apps inside wsl worked pretty well. At that time the glxinfo -B output was like this:

    name of display: :0
    display: :0  screen: 0
    direct rendering: Yes
    Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Microsoft Corporation (0xffffffff)
    Device: D3D12 (AMD Radeon(TM) Graphics) (0xffffffff)
  2. Then I switched to RTX3060ti, I uninstalled all the AMD drivers and installed the NVIDIA drivers. Also, I installed cuda support inside wsl as described here

Then the GUI Apps inside wsl began to stuck. Like I input glxinfo -B, nothing outputs, the process just stuck there, never finish. gedit behaves the same way.

In /mnt/wslg/weston.log, Xwayland server was spawned but no window is initialized

[19:24:06.647] rdp_rail_notify_app_list(): rdp_peer 0x555a443ede70
[19:24:06.647]     inSync: 1
[19:24:06.647]     syncStart: 0
[19:24:06.647]     syncEnd: 1
[19:24:06.647]     newAppId: 1
[19:24:06.647]     deleteAppId: 0
[19:24:06.647]     deleteAppProvider: 0
[19:24:06.647]     appId: display-im6.q16
[19:24:06.647]     appGroup: (null)
[19:24:06.647]     appExecPath: /usr/bin/display-im6.q16 -nostdin 
[19:24:06.647]     appWorkingDir: (null)
[19:24:06.647]     appDesc: ImageMagick (color depth=q16) (Ubuntu-20.04)
[19:24:06.647]     appIcon: 0x7f9cc801fbe0
[19:24:06.647]     appProvider: (null)
[19:24:11.015] Audio sink thread: connection successful on socket (68).
[19:24:11.015] RDP Sink version (1 - 1)
[19:28:39.444] Spawned Xwayland server, pid 97
[19:29:06.636] rdp_rail_idle_handler is called on peerCtx:0x555a443ede70

In /mnt/wslg/stderr.log, I got

dbus[10]: Unknown username "pulse" in message bus configuration file
/usr/share/icons/hicolor/scalable/apps/org.gnome.gedit.svg: unrecognized file header 0x3c 0x3f 0x78 0x6d
/usr/share/icons/hicolor/scalable/apps/ibus-setup.svg: unrecognized file header 0x3c 0x3f 0x78 0x6d
glamor: 'wl_drm' not supported
Missing Wayland requirements for glamor GBM backend
Failed to initialize glamor, falling back to sw
hideyukn88 commented 2 years ago

@antiwinter, which verson of NVIIDA driver are you using? While I don't have same NVIDIA GPU hardware as yours, but still using NVIDIA driver, and I don't see any issue with glxinfo -B, and it is with NVIDIA driver version 30.0.15.1165 (Windows driver version). Also, if you don't install cuda support, does it make any difference? Thanks!

name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Microsoft Corporation (0xffffffff)
    Device: D3D12 (NVIDIA Quadro P400) (0xffffffff)
    Version: 21.2.6
    Accelerated: yes
    Video memory: 18229MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 3.3
    Max compat profile version: 3.1
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.0
OpenGL vendor string: Microsoft Corporation
OpenGL renderer string: D3D12 (NVIDIA Quadro P400)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 21.2.6
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
antiwinter commented 2 years ago

Hi @hideyukn88 , I'm using 30.0.15.1296 on Windows side. To verify wsl distro without CUDA driver, I imported a fresh new Ubuntu 22.04, and installed only gedit. The process still stuck

I guess the problem is on Win host side

antiwinter commented 2 years ago

I used Studio driver at first. Just now I switched to Game Ready driver, no luck

I unplugged the GPU, and the problem disappeared :woozy_face:

MoritzMoreira commented 1 year ago

I think I have the same problem running Ubuntu 22.04 on a Dell Inspiron 15 with NVIDIA Graphics card. At system shutdown I get: Waiting for process: Xwayland