[Bug 45121] Steam uses high CPU while idle

WineHQ Bugzilla wine-bugs at winehq.org
Sun Nov 15 10:44:20 CST 2020


https://bugs.winehq.org/show_bug.cgi?id=45121

Etienne Dechamps <etienne at edechamps.fr> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |etienne at edechamps.fr

--- Comment #12 from Etienne Dechamps <etienne at 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.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list