http://bugs.winehq.org/show_bug.cgi?id=26658
Summary: Steam startup slow on Wine Product: Wine Version: unspecified Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com
On my nice fast laptop with a 15 Mbit/sec internet connection and wine from git, it takes 20-30 seconds from the time the "Connecting Steam Account: Foo" appears to the time it gains a cancel button. This is about two or three times longer than on Windows 7 on the same hardware. The extra time makes starting Steam much more annoying.
http://bugs.winehq.org/show_bug.cgi?id=26658
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|unspecified |1.3.17 Summary|Steam startup slow on Wine |Steam startup is slow Severity|normal |minor
http://bugs.winehq.org/show_bug.cgi?id=26658
Ken Sharp kennybobs@o2.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://cdn.steampowered.com | |/download/SteamInstall.msi
http://bugs.winehq.org/show_bug.cgi?id=26658
Fab netfab@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |netfab@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=26658
Alex Bradbury asb@asbradbury.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |asb@asbradbury.org
http://bugs.winehq.org/show_bug.cgi?id=26658
Javier Kohen jkohen@users.sourceforge.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jkohen@users.sourceforge.ne | |t
http://bugs.winehq.org/show_bug.cgi?id=26658
Pilot pilota51@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |pilota51@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=26658
Adam Bolte boltronics@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |boltronics@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=26658
Benjamin Hodgetts ben@xnode.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ben@xnode.org
--- Comment #1 from Benjamin Hodgetts ben@xnode.org 2011-07-17 16:21:28 CDT --- I have the same issue on my netbook. Works perfectly under Windows but there's a huge delay (can be a minute or two at times) starting up Steam under Wine.
http://bugs.winehq.org/show_bug.cgi?id=26658
tommi tommivs@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |tommivs@gmail.com
--- Comment #2 from tommi tommivs@gmail.com 2011-08-09 04:04:47 CDT --- I can also confirm this one. wine 1.3.26
http://bugs.winehq.org/show_bug.cgi?id=26658
James Le Cuirot chewi@aura-online.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |chewi@aura-online.co.uk
http://bugs.winehq.org/show_bug.cgi?id=26658
David Finch david@mytsoftware.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |david@mytsoftware.com
http://bugs.winehq.org/show_bug.cgi?id=26658
Erich Hoover ehoover@mines.edu changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ehoover@mines.edu
--- Comment #3 from Erich Hoover ehoover@mines.edu 2011-10-03 10:05:23 CDT --- I think this might be related to how steam looks for files.
I'm having a problem right now (new steam version?) where I cannot do the first-launch "completing installation" for Portal 2. I believe that the issue is that steam uses GetVolumePathNameW to find the drive associated with the steam folder and then searches for files by inode within that drive. On Wine we just return the base drive letter right now, so since I have the steam folder on an external drive it freaks out.
Anyway, how I believe this relates to the startup taking forever is that steam is always searching the entire drive for its files (since it is doing an inode-based lookup). So, I think that what we need is a cache of files where NtQueryInformationFile has returned an inode value so that calls to NtCreateFile with FILE_OPEN_BY_FILE_ID can search the "recently returned inode list" before it looks through the entire drive.
http://bugs.winehq.org/show_bug.cgi?id=26658
--- Comment #4 from James Le Cuirot chewi@aura-online.co.uk 2011-10-03 10:22:55 CDT --- My setup is a bit harder to explain but that theory seems to fit.
http://bugs.winehq.org/show_bug.cgi?id=26658
Real Name c1383774@rtrtr.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |c1383774@rtrtr.com
--- Comment #5 from Real Name c1383774@rtrtr.com 2012-05-28 09:47:23 CDT --- Confirmed. It's a big laggy.
http://bugs.winehq.org/show_bug.cgi?id=26658
--- Comment #6 from Erich Hoover ehoover@mines.edu 2012-07-17 10:59:53 CDT --- (In reply to comment #3)
... Anyway, how I believe this relates to the startup taking forever is that steam is always searching the entire drive for its files (since it is doing an inode-based lookup). So, I think that what we need is a cache of files where NtQueryInformationFile has returned an inode value so that calls to NtCreateFile with FILE_OPEN_BY_FILE_ID can search the "recently returned inode list" before it looks through the entire drive.
I'm not entirely sure this is why Steam takes so long to load, but I do have a thought about fixing this particular problem... It should be possible to accelerate the search by using /proc/<wine pid>/fd/* to get a head start on finding out which file corresponds to the inode.
http://bugs.winehq.org/show_bug.cgi?id=26658
Mihail Balabin mbalabin@googlemail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mbalabin@googlemail.com
--- Comment #7 from Mihail Balabin mbalabin@googlemail.com 2012-12-23 02:20:06 CST --- I have just upgraded from wine 1.5.18 to 1.5.20. It seems that steam startup became much faster. Were any steam-related changes made between those versions?
http://bugs.winehq.org/show_bug.cgi?id=26658
Mihail Balabin mbalabin@googlemail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mbalabin@googlemail.com
--- Comment #7 from Mihail Balabin mbalabin@googlemail.com 2012-12-23 02:20:06 CST --- I have just upgraded from wine 1.5.18 to 1.5.20. It seems that steam startup became much faster. Were any steam-related changes made between those versions?
--- Comment #8 from Javier Kohen jkohen@users.sourceforge.net 2013-01-12 03:29:11 CST --- Created attachment 43156 --> http://bugs.winehq.org/attachment.cgi?id=43156 Instrumentation for FILE_CreateFile
I've used the attached patch to instrument FILE_CreateFile. First, I see no calls with FILE_OPEN_BY_FILE_ID. Second, on my SSD drive the cumulative search time for Steam startup and shutdown adds up to less than a second, and the cumulative time in FILE_CreateFile is less than 1.5 seconds. Yet Steam takes 45 seconds to start (measured with a stop watch).
In any case, a quick grep/sort/uniq on the trace shows that on average Steam makes 3 identical calls to FILE_CreateFile (same handle/name/etc.), and visual inspection indicates that most of the calls are for the same files over and over. Caching might help HDD owners (it'd be nice if somebody ran my test though, because the file system cache should cover that), but it doesn't seem to be the worst contributor to the overall startup.
I'm curious, has anybody compared the start up time to native Linux Steam start up times? It seems a hassle to install it on Debian, so I haven't bothered.
To reproduce: 1. patch in my change (diff against Wine 1.5.21). 2. make LDFLAGS=-lrt 3. env WINEDEBUG=+ntdll wine … &> /tmp/wine-ntdll.log
Search time: $ grep "search took" /tmp/wine-ntdll.log | awk 'BEGIN { total = 0; } { total += $5; } END { print total; } ' 909038970
NtCreateFile time: $ grep "createfile took" /tmp/wine-ntdll.log | awk 'BEGIN { total = 0; } { total += $5; } END { print total; } ' 1346543118
http://bugs.winehq.org/show_bug.cgi?id=26658
Christopher Cope inuyasha@usa.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |inuyasha@usa.com
--- Comment #9 from Christopher Cope inuyasha@usa.com 2013-06-21 17:24:19 CDT --- (In reply to comment #8)
Created attachment 43156 [details] Instrumentation for FILE_CreateFile
I've used the attached patch to instrument FILE_CreateFile. First, I see no calls with FILE_OPEN_BY_FILE_ID. Second, on my SSD drive the cumulative search time for Steam startup and shutdown adds up to less than a second, and the cumulative time in FILE_CreateFile is less than 1.5 seconds. Yet Steam takes 45 seconds to start (measured with a stop watch).
In any case, a quick grep/sort/uniq on the trace shows that on average Steam makes 3 identical calls to FILE_CreateFile (same handle/name/etc.), and visual inspection indicates that most of the calls are for the same files over and over. Caching might help HDD owners (it'd be nice if somebody ran my test though, because the file system cache should cover that), but it doesn't seem to be the worst contributor to the overall startup.
I'm curious, has anybody compared the start up time to native Linux Steam start up times? It seems a hassle to install it on Debian, so I haven't bothered.
To reproduce:
- patch in my change (diff against Wine 1.5.21).
- make LDFLAGS=-lrt
- env WINEDEBUG=+ntdll wine … &> /tmp/wine-ntdll.log
Search time: $ grep "search took" /tmp/wine-ntdll.log | awk 'BEGIN { total = 0; } { total += $5; } END { print total; } ' 909038970
NtCreateFile time: $ grep "createfile took" /tmp/wine-ntdll.log | awk 'BEGIN { total = 0; } { total += $5; } END { print total; } ' 1346543118
It isn't too difficult to get steam installed on other Linux distributions. Feel free to contact me if you need help. On a more relevant note, I tested the Linux vs Wine start up times. Linux: 15 seconds Wine: 52 seconds
http://bugs.winehq.org/show_bug.cgi?id=26658
--- Comment #10 from Ken Sharp imwellcushtymelike@gmail.com --- Does this still occur in Wine 1.7.11 or later?
http://bugs.winehq.org/show_bug.cgi?id=26658
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #11 from Anastasius Focht focht@gmx.net --- Hello folks,
you can also use 'timestamp' debug channel combined with others to measure time between events/trace messages.
I don't see a significant delay with Steam client from "cold start" (no processes running prior). Some mid-range system with i5 and Samsung 840 SSD.
Maybe someone with low spec hardware (hdd) can retest. Make sure you can provide numbers with a Steam client running off a Windows install from the same system.
$ wine --version wine-1.7.17-28-g5ef5490
Regards
https://bugs.winehq.org/show_bug.cgi?id=26658
hanska2@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |hanska2@luukku.com
--- Comment #12 from hanska2@luukku.com --- I don't remember how fast steam was on windows based system, but it has always been quite slow on linux. I upgraded hdd --> ssd. And even the fastest startup time according to console messages is around 7s. I didn't see much of improvement on that (but kde loading speed has improved a lot).
Is this bug still valid for you?
https://bugs.winehq.org/show_bug.cgi?id=26658
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |Abandoned?
https://bugs.winehq.org/show_bug.cgi?id=26658
Joni L-H jonilh@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jonilh@gmail.com
--- Comment #13 from Joni L-H jonilh@gmail.com --- Try running steam with# "...taskset -c 0 wine..." If I do not do this (locking steam to 1 core) it takes forEVER to start up. But if I do lock it to 1 core it starts fairly quickly. Not sure why this is.
https://bugs.winehq.org/show_bug.cgi?id=26658
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
--- Comment #14 from Fabian Maurer dark.shadow4@web.de --- Is this still an issue?
https://bugs.winehq.org/show_bug.cgi?id=26658
Javier Kohen jkohen@users.sourceforge.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|jkohen@users.sourceforge.ne | |t |
https://bugs.winehq.org/show_bug.cgi?id=26658
--- Comment #15 from Ken Sharp imwellcushtymelike@gmail.com --- On a spinning disk up to the point of seeing the store (the "main page").
~15 seconds on Windows 10 ~30 seconds on Wine 8.12 ~90 seconds on Linux!
So it does seem slower but nothing terrible compared to the Linux client. There are a stream of fixmes in the console output.