https://bugs.winehq.org/show_bug.cgi?id=47281
Bug ID: 47281 Summary: Ableton Live 10.0.6 Product: Wine Version: 4.0.1 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: bill.huey@gmail.com Distribution: ---
This is an experimental branch where I've pulled a real-time patches from Kai Krakow's proton tree and have incorporated it into both master and stable branches of WineHQ
URL for the the GitHub repo is at:
https://github.com/billhuey/wine-bhuey
The branch is bhuey-rt-master and bhuey-rt-stable
Currently both stable and master run Ableton fine as far as I can tell but there are issues with wineserver sucking up a full core of CPU time.
---- billh@pngn-dev:~/wine/wine-test-stable$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 19.04 Release: 19.04 Codename: disco ---- Linux pngn-dev 5.0.14-rt9 #2 SMP PREEMPT RT Fri May 17 01:31:54 PDT 2019 x86_64 x86_64 x86_64 GNU/Linux ----
It's running a real-time kernel but I doubt that's the issue.
https://bugs.winehq.org/show_bug.cgi?id=47281
Bill Huey (hui) bill.huey@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bill.huey@gmail.com Distribution|--- |Ubuntu
https://bugs.winehq.org/show_bug.cgi?id=47281
Bill Huey (hui) bill.huey@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |hurikhan77+wine@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=47281
--- Comment #1 from Bill Huey (hui) bill.huey@gmail.com --- I'm running into what looks like starvation problems with the real-time threads and overall system. I speculate that it could be related to the priority of the audio system threads/program vs the real-time priority threads inside Ableton.
It should be possible to experiment with thread priority for threads created within Wine and how the pulseaudio or jackd daemons interact. There's kernel event tracing facilities with KernelShark as well to look at thread block states and run patterns of each real-time thread.
https://bugs.winehq.org/show_bug.cgi?id=47281
pattietreutel katyaberezyaka@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |katyaberezyaka@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=47281
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Ableton Live 10.0.6 |wineserver uses a full CPU | |core with Ableton Live | |10.0.6 and a custom Wine | |version Severity|enhancement |normal
--- Comment #2 from Matteo Bruni matteo.mystral@gmail.com --- I don't know that this is the best place for discussing a bug related to out of tree patches.
https://bugs.winehq.org/show_bug.cgi?id=47281
--- Comment #3 from Bill Huey (hui) bill.huey@gmail.com --- Where should this go then ? Do you folks not care about running Ableton ?
The stuff I'm working on might be useful for other programs but if you think what I'm doesn't need to be documented here then where should it go ?
https://bugs.winehq.org/show_bug.cgi?id=47281
--- Comment #4 from Austin English austinenglish@gmail.com --- (In reply to Bill Huey (hui) from comment #3)
Where should this go then ? Do you folks not care about running Ableton ?
The stuff I'm working on might be useful for other programs but if you think what I'm doesn't need to be documented here then where should it go ?
The GitHub repo hosting the patchset
https://bugs.winehq.org/show_bug.cgi?id=47281
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #5 from Zebediah Figura z.figura12@gmail.com --- Unless it can be demonstrated that the bug affects plain Wine, it should be filed with the distributor of the patches in question. This bug tracker only supports plain Wine and Wine-Staging.
https://bugs.winehq.org/show_bug.cgi?id=47281
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Keywords| |Abandoned? Status|UNCONFIRMED |NEEDINFO
--- Comment #6 from Ken Sharp imwellcushtymelike@gmail.com --- As above. Waiting for an answer.
https://bugs.winehq.org/show_bug.cgi?id=47281
johnstonljordan@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |johnstonljordan@gmail.com
--- Comment #7 from johnstonljordan@gmail.com --- (In reply to Zeb Figura from comment #5)
Unless it can be demonstrated that the bug affects plain Wine, it should be filed with the distributor of the patches in question. This bug tracker only supports plain Wine and Wine-Staging.
@zeb this can easily be demonstrated on vanilla wine (including current versions).
the application has a trial version, as well: https://www.ableton.com/en/trial/
NOTE: There is currently a regression in Wine-9.11 or 9.12 caused by this commit: https://gitlab.winehq.org/wine/wine/-/merge_requests/5752 or a related ucrt commit that casues Ableton to no longer be able to use crash recovery / undo... So if you do test this out: be aware of why that warning happens on startup.
That said:
It's not specific to some custom version of wine (although, in my own builds: I do NOT have this problem, but I'm using Fsync, RT scheduling, etc). It's likely not a problem on Proton/Fsync, either...
However, even when this bug isn't an issue; Ableton's 'Mainthread` does consume a lot of CPU, even on idle. strace on that thread shows stuff like this (when using Fsync):
6.215589 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 <0.000011> 6.215590 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 <0.000012> 6.215592 futex(0x76fee83a8a80, FUTEX_WAKE, 1) = 0 <0.000010> 6.215594 rt_sigprocmask(SIG_SETMASK, [HUP INT QUIT USR1 USR2 ALRM CHLD IO], [], 8) = 0 <0.000011> 6.215596 futex(0x76fee83a8a80, FUTEX_WAKE, 1) = 0 <0.000010> 6.215598 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 <0.000011> 6.215599 futex(0x76fee83a8a80, FUTEX_WAKE, 1) = 0 <0.000011> 6.215601 rt_sigprocmask(SIG_SETMASK, [HUP INT QUIT USR1 USR2 ALRM CHLD IO], [], 8) = 0 <0.000011> 6.215603 futex(0x76fee83a8a80, FUTEX_WAKE, 1) = 0 <0.000010> 6.215604 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 <0.000009> 6.215605 futex(0x76fee83a8a80, FUTEX_WAKE, 1) = 0 <0.000011> 6.215607 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 <0.000009> 6.215608 futex(0x76fee83a8a80, FUTEX_WAKE, 1) = 0 <0.000009> 6.215610 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 <0.000010>
and the wait ops happen server-side.
Not entirely sure how to debug that though, it's a bit beyond me, beyond the scope of this particular bug, as well.
Regardless, this bug report is valid - despite it being a few years old / the OP using a custom build of wine. Very much present in vanilla Wine now.