[Bug 52313] New: Unmapping vDSO leads to performance degradation on Linux

WineHQ Bugzilla wine-bugs at winehq.org
Fri Dec 31 15:57:07 CST 2021


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

            Bug ID: 52313
           Summary: Unmapping vDSO leads to performance degradation on
                    Linux
           Product: Wine
           Version: 7.0-rc3
          Hardware: x86-64
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: loader
          Assignee: wine-bugs at winehq.org
          Reporter: jinoh.kang.kr at gmail.com
                CC: leslie_alistair at hotmail.com
      Distribution: ---

Created attachment 71474
  --> https://bugs.winehq.org/attachment.cgi?id=71474
Patches for vDSO/sigpage/stack remapping

Commit f558741fabc116534fa598aa890ffed683a7153b removes vDSO if it conflicts
with reserved ranges:

    Remove the AT_SYSINFO and AT_SYSINFO_EHDR values if the sysinfo page
    is in one of our reserved ranges.

However, missing vDSO leads to performance issues on some syscalls (e.g.
clock_gettime, gettimeofday) and may even lead to crash when run with some
ancient C libraries that does not supply a custom signal restorer.

vDSO pages can clash with reserved ranges especially in a 32-bit address space
with address space layout randomization (ASLR) turned on.

Recent versions of the Linux kernel introduced support for mremap()-ping vDSO
pages, partly in an effort to support checkpoint restore in userspace (CRIU). 
Special programs that require specific memory layout constraints (such as Wine
preloader) can take advantage of this support to modify the address space to
meet its requirements.

Attached patches are currently intended for Wine-Staging.

-- 
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