https://bugs.winehq.org/show_bug.cgi?id=45121
Etienne Dechamps etienne@edechamps.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |etienne@edechamps.fr
--- Comment #12 from Etienne Dechamps etienne@edechamps.fr --- Created attachment 68634 --> https://bugs.winehq.org/attachment.cgi?id=68634 Etienne Dechamps WINEDEBUG=+server log with wine cf49617c1a3
I am facing a similar problem with wine 5.0 as well as latest wine master (cf49617c1a3). The symptoms are similar (about 15% CPU usage from steam.exe and 10% from wineserver while Steam is idle - steamwebhelper.exe is fine, however). My WINEDEBUG=+server log looks very different from what Filip Volejnik previously reported. (Full log is attached.)
Basically, while the problem is occurring, my wineserver debug log shows the following pattern repeating ad infinitum:
0024: get_thread_input( tid=0000 ) 0024: get_thread_input() = 0 { focus=00010162, capture=00000000, active=00010162, foreground=00010162, menu_owner=00000000, move_size=00000000, caret=00000000, cursor=00000000, show_count=0, rect={0,0;0,0} } 0024: get_window_parents( handle=00010162 ) 0024: get_window_parents() = 0 { count=3, parents={0001016e,000300ba,00010020} } 0024: get_window_info( handle=000300ba ) 0024: get_window_info() = 0 { full_handle=000300ba, last_active=000300ba, pid=0068, tid=006c, atom=c068, is_unicode=1, dpi=96, awareness=2 } 0024: get_message( flags=04ff0001, get_win=00000000, get_first=00000000, get_last=ffffffff, hw_id=00000000, wake_mask=00000040, changed_mask=000004ff ) 0024: get_message() = PENDING { win=00000000, msg=00000000, wparam=00000000, lparam=00000000, type=0, x=0, y=0, time=00000000, active_hooks=80000000, total=0, data={} } 0024: select( flags=2, cookie=0031d76c, timeout=infinite, size=8, prev_apc=0000, result={}, data={WAIT,handles={0074}}, context={} ) 0024: select() = PENDING { call={APC_NONE}, apc_handle=0000, context={} } 0024: *wakeup* signaled=0 0024: get_message( flags=04ff0001, get_win=00000000, get_first=00000000, get_last=ffffffff, hw_id=00000000, wake_mask=00000040, changed_mask=000004ff ) 0024: get_message() = 0 { win=000100f8, msg=00000113, wparam=49554759, lparam=00000000, type=6, x=0, y=0, time=493ba0b4, active_hooks=80000000, total=0, data={} } 0024: get_message( flags=00000000, get_win=00000000, get_first=00000000, get_last=ffffffff, hw_id=00000000, wake_mask=00000000, changed_mask=00000000 ) 0024: get_message() = PENDING { win=00000000, msg=00000000, wparam=00000000, lparam=00000000, type=0, x=0, y=0, time=00000000, active_hooks=80000000, total=0, data={} } 0024: get_thread_input( tid=0000 ) 0024: get_thread_input() = 0 { focus=00010162, capture=00000000, active=00010162, foreground=00010162, menu_owner=00000000, move_size=00000000, caret=00000000, cursor=00000000, show_count=0, rect={0,0;0,0} } 0024: get_window_parents( handle=00010162 ) 0024: get_window_parents() = 0 { count=3, parents={0001016e,000300ba,00010020} } 0024: get_window_info( handle=000300ba ) 0024: get_window_info() = 0 { full_handle=000300ba, last_active=000300ba, pid=0068, tid=006c, atom=c068, is_unicode=1, dpi=96, awareness=2 } 0024: enum_key( hkey=007c, index=-1, info_class=2 ) 0024: enum_key() = 0 { subkeys=0, max_subkey=0, max_class=0, values=1, max_value=28, max_data=202, modif=1d6bb6b490958ba (-79.1218890), total=0, namelen=10, name=L"", class=L"" } 0024: enum_key( hkey=007c, index=-1, info_class=2 ) 0024: enum_key() = 0 { subkeys=0, max_subkey=0, max_class=0, values=1, max_value=28, max_data=202, modif=1d6bb6b490958ba (-79.1219090), total=0, namelen=10, name=L"", class=L"" } 0024: enum_key( hkey=007c, index=-1, info_class=2 ) 0024: enum_key() = 0 { subkeys=0, max_subkey=0, max_class=0, values=1, max_value=28, max_data=202, modif=1d6bb6b490958ba (-79.1219220), total=0, namelen=10, name=L"", class=L"" } 0024: select( flags=3, cookie=0031dbec, timeout=0, size=0, prev_apc=0000, result={}, data={}, context={} ) 0024: select() = TIMEOUT { call={APC_NONE}, apc_handle=0000, context={} } 0024: select( flags=2, cookie=0031d05c, timeout=0, size=8, prev_apc=0000, result={}, data={WAIT,handles={009c}}, context={} ) 0024: select() = TIMEOUT { call={APC_NONE}, apc_handle=0000, context={} } 0024: enum_key( hkey=007c, index=-1, info_class=2 ) 0024: enum_key() = 0 { subkeys=0, max_subkey=0, max_class=0, values=1, max_value=28, max_data=202, modif=1d6bb6b490958ba (-79.1220900), total=0, namelen=10, name=L"", class=L"" } 0024: enum_key( hkey=007c, index=-1, info_class=2 ) 0024: enum_key() = 0 { subkeys=0, max_subkey=0, max_class=0, values=1, max_value=28, max_data=202, modif=1d6bb6b490958ba (-79.1221100), total=0, namelen=10, name=L"", class=L"" } 0024: enum_key( hkey=007c, index=-1, info_class=2 ) 0024: enum_key() = 0 { subkeys=0, max_subkey=0, max_class=0, values=1, max_value=28, max_data=202, modif=1d6bb6b490958ba (-79.1221260), total=0, namelen=10, name=L"", class=L"" } 0024: enum_key( hkey=007c, index=-1, info_class=2 ) 0024: enum_key() = 0 { subkeys=0, max_subkey=0, max_class=0, values=1, max_value=28, max_data=202, modif=1d6bb6b490958ba (-79.1221410), total=0, namelen=10, name=L"", class=L"" } 0024: enum_key( hkey=007c, index=-1, info_class=2 ) 0024: enum_key() = 0 { subkeys=0, max_subkey=0, max_class=0, values=1, max_value=28, max_data=202, modif=1d6bb6b490958ba (-79.1221520), total=0, namelen=10, name=L"", class=L"" } 0024: enum_key( hkey=007c, index=-1, info_class=2 ) 0024: enum_key() = 0 { subkeys=0, max_subkey=0, max_class=0, values=1, max_value=28, max_data=202, modif=1d6bb6b490958ba (-79.1221640), total=0, namelen=10, name=L"", class=L"" }
This pattern repeats about ~1100 times per second(!). Looks like something is caught in some kind of busy loop.
I was curious what is being read in the registry. I traced hkey=007c back to:
0024: open_key( parent=0018, access=02000000, attributes=00000000, name=L"HARDWARE\DEVICEMAP\VIDEO" ) 0024: open_key() = 0 { hkey=007c }
Mmm. Maybe Steam doesn't like what Wine presents in HKEY_LOCAL_MACHINE\Hardware\DEVICEMAP\VIDEO or something.