Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fsync: Fix checking if futex_waitv is available. #256

Open
wants to merge 301 commits into
base: bleeding-edge
Choose a base branch
from

Conversation

mati7337
Copy link

Proton's wine checks if futex_waitv syscall is available by checking if it sets errno to ENOSYS.
This works in most cases, however in environments like podman even though this syscall is blocked it sets errno to EPERM instead which causes fsync to be enabled despite it not being supported. This causes 100% CPU usage even when launching notepad.exe.

In podman this seems to be a problem since containers/common@a3f335c which added futex_waitv to the seccomp blocklist. It seems that before that commit it returned ENOSYS which wine correctly recognized as unsupported.

This PR fixes this by additionally checking if errno isn't EPERM before enabling fsync.

(cherry picked from commit 899abea)

CW-Bug-Id: #20833
(cherry picked from commit eac5ad2)

CW-Bug-Id: #20833
(cherry picked from commit 2734b26)

CW-Bug-Id: #20833
…romAMMediaType.

(cherry picked from commit 45d4aa9)

CW-Bug-Id: #20833
…diaType.

(cherry picked from commit 689868c)

CW-Bug-Id: #20833
…romMFMediaType in some cases.

(cherry picked from commit a4fb357)

CW-Bug-Id: #20833
(cherry picked from commit 1e05381)

CW-Bug-Id: #20833
…media_type_audio_format.

(cherry picked from commit 552cec9)

CW-Bug-Id: #20833
(cherry picked from commit da2c20a)

CW-Bug-Id: #20833
(cherry picked from commit 1f589f6)

CW-Bug-Id: #20833
(cherry picked from commit c5f0039)

CW-Bug-Id: #20833
(cherry picked from commit d304e58)

CW-Bug-Id: #20833
(cherry picked from commit b1cca5b)

CW-Bug-Id: #20833
Instead of using the last palette entry, which might be misaligned.

(cherry picked from commit 26876b4)

CW-Bug-Id: #20833
…ogy nodes.

(cherry picked from commit fa23650)

CW-Bug-Id: #20833
… masks.

(cherry picked from commit 551d047)

CW-Bug-Id: #20833
(cherry picked from commit 704c510)

CW-Bug-Id: #20833
(cherry picked from commit 00758a2)

CW-Bug-Id: #20833
(cherry picked from commit 772ad6e)

CW-Bug-Id: #20833
…ype.

(cherry picked from commit ec0455b)

CW-Bug-Id: #20833
(cherry picked from commit 8c77a1a)

CW-Bug-Id: #20833
(cherry picked from commit 9fac589)

CW-Bug-Id: #20833
(cherry picked from commit bf64ae2)

CW-Bug-Id: #20833
rbernon and others added 29 commits September 5, 2024 15:46
This is an indication that the source has ended, and that the session is
about to end, but not that all the samples in the session have been
decoded and processed.

CW-Bug-Id: #20833

CW-Bug-Id: #20833
CW-Bug-Id: #20833

CW-Bug-Id: #20833
…ranscoded stream.

CW-Bug-Id: #21303
CW-Bug-Id: #22008

CW-Bug-Id: #20833
…eate transform.

CW-Bug-Id: #21303
CW-Bug-Id: #23630

CW-Bug-Id: #20833
…more formats.

Fixes missing video in Devil May Cry HD Collection / DMC1.

CW-Bug-Id: #20833
Fixes garbled first frame in ARK: Survival Evolved.

CW-Bug-Id: #20833
Fixes some garbled video frames when the texture is later used as input
by the video processor.

CW-Bug-Id: #20833
h264parse does not correctly determine 'nal' alignment if this caps is
provided.

CW-Bug-Id: #23226
CW-Bug-Id: #23425
For 4K cutscenes in Ghostbusters: The Video Game Remastered

Link: ValveSoftware#245
…oder.

It can change stream sizes during playback, and the video info aren't
updated accordingly.

CW-Bug-Id: #20833
Pushing all queued input immediately causes gstreamer to process all
frames in advance and queue them in the output_queue of the transform.

This results in a large amount of memory usage that can cause an OOM
issue.

This patch allows the queue to be drained at the rate required by the
application.

(cherry picked from commit 4a6c1c1)

CW-Bug-Id: #24132
(cherry picked from commit 6d2a900)

CW-Bug-Id: #24237
(cherry picked from commit 26136fd)

CW-Bug-Id: #24237
(cherry picked from commit 8dc5242)

CW-Bug-Id: #24237
Check for EPERM in addition to ENOSYS when checking futex_waitv's
availability. EPERM is returned in environments where the futex_waitv
syscall is blocked.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants