https://bugs.winehq.org/show_bug.cgi?id=37773
Bug ID: 37773 Summary: Handel-C compiler extremely slow under WIne compared to Windows Product: Wine Version: 1.7.33 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ntdll Assignee: wine-bugs@winehq.org Reporter: felix.huber@schyf.de Distribution: ---
Handel-C (a C to FPGA synthesis tool) compiles a typical design in 15 minutes when using Win 7 in a Virtualbox. When run under wine, no special error messages appeared, but after 10h the compilation was still not finished and I aborted it.
I re-ran it with operf and stopped after some 15minutes. The result was that 95% of the time was spent in heap.c of ntdll.dll.so in function HEAP_FindFreeBlock.
So I ran wine with WINEDEBUG=trace+heap,+relay and I see a lot of malloc() and free(), but execution is so slow that I can't really see what's going on.
The problem might not be related to Handel-C but the way wine manages the heap, as I see also lots of malloc/free with other windows applications, even when they're idle.
Tests were done with Opensuse 64bit 12.3, 13.1 and 13.2 with Kernel from 3.11 to 3.18, all with the same slow performance. The setup was always a clean installation with only MFC42 installed with winetricks, as this was needed by the app. No differences were found when switching between native and builtin MSVCRT dlls.
I wonder how I can narrow down the cause of this poor performance.
https://bugs.winehq.org/show_bug.cgi?id=37773
Michael Müller michael@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |michael@fds-team.de
--- Comment #1 from Michael Müller michael@fds-team.de --- Hi,
could you please test whether this patch increases the performance of the program?
https://github.com/wine-compholio/wine-staging/blob/master/patches/ntdll-Hea...
If you don't want to compile Wine on your own, you can also check if you encounter any performance difference using Wine Staging which includes this patch ( http://www.wine-staging.com/install.html#user-content--opensuse ).
Regards, Michael
https://bugs.winehq.org/show_bug.cgi?id=37773
--- Comment #2 from felix.huber@schyf.de --- I recompiled with the patch, no difference.
https://bugs.winehq.org/show_bug.cgi?id=37773
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #3 from super_man@post.com --- (In reply to felix.huber from comment #2)
I recompiled with the patch, no difference.
It could be worth to retest. 1.7.33 is really old compared to 1.9.6 that's latest released.
https://bugs.winehq.org/show_bug.cgi?id=37773
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://bugs.winehq.org/sho | |w_bug.cgi?id=43224
https://bugs.winehq.org/show_bug.cgi?id=37773
--- Comment #4 from felix.huber@schyf.de --- It seems like some recent changes to heap.c boosted the performance to about 90% of the original timing. That's good enough for me. This report can be closed.
https://bugs.winehq.org/show_bug.cgi?id=37773
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED Summary|Handel-C compiler extremely |Handel-C compiler extremely |slow under WIne compared to |slow under Wine compared to |Windows |Windows (heap CC| |focht@gmx.net
--- Comment #5 from Anastasius Focht focht@gmx.net --- Hello Felix,
--- quote --- This report can be closed. --- quote ---
Sure.
Could you tell which vendor/toolsuite/version you used to report the bug? Having proper detail/tracebility improves Bugzilla query quality and tracking of Wine/app regressions.
It would be even better if you can figure out the commit that fixed it (although not required):
https://source.winehq.org/git/wine.git/history/HEAD:/dlls/ntdll/heap.c
There is only one relevant commit to that file in the data range from your initial report until now:
https://source.winehq.org/git/wine.git/commitdiff/2175852f5a45eebef5dcbbad99...
--- quote --- ntdll: Add free list buckets for every arena size up to 0x100. author Huw Davies huw@codeweavers.com Mon, 9 Oct 2017 12:15:52 +0000 (13:15 +0100) committer Alexandre Julliard julliard@winehq.org Mon, 9 Oct 2017 17:52:29 +0000 (19:52 +0200) --- quote ---
Tidbit: This brings back some memories on my own. I was doing some hardware design/development with VHDL on Xilinx FPGAs with Xilinx/Cadence/Synopsys tools on Sun UltraSPARC machines as part of my EE/CS university degree in the mid-1990s. Never touched System-C/Handel-C subject as I went to embedded systems software development ;-)
Regards
https://bugs.winehq.org/show_bug.cgi?id=37773
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Handel-C compiler extremely |Handel-C compiler extremely |slow under Wine compared to |slow under Wine compared to |Windows (heap |Windows (heap manager)
https://bugs.winehq.org/show_bug.cgi?id=37773
--- Comment #6 from felix.huber@schyf.de --- I did a binary search and I can confirm that this commit
https://source.winehq.org/git/wine.git/commitdiff/2175852f5a45eebef5dcbbad99...
fixed it.
The S/W I use is:
Vendor: Mentor Graphics Toolsuite: Handel-C Version: 5.3, 5.4
Re-tidbit: Handel-C vs VHDL is like C++ vs 4004 assembler. I do everything with it: VGA output with VT100 emulation, FFTs, floating point arithmetic and all that in FPGAs with no µP :-)
https://bugs.winehq.org/show_bug.cgi?id=37773
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Handel-C compiler extremely |Mentor Graphics DK Design |slow under Wine compared to |Suite 5.3/5.4 - Handel-C |Windows (heap manager) |compiler extremely slow | |under Wine compared to | |Windows (heap manager) Fixed by SHA1| |2175852f5a45eebef5dcbbad990 | |6509e736d596a URL| |https://www.mentor.com/prod | |ucts/fpga/handel-c/dk-desig | |n-suite/
--- Comment #7 from Anastasius Focht focht@gmx.net --- Hello Felix,
thanks for the information, I've updated the ticket with it.
Regards
https://bugs.winehq.org/show_bug.cgi?id=37773
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 3.14.