[PATCH staging 0/4] Improve ntdll-WRITECOPY patchset.

Andrew Wesie awesie at gmail.com
Fri Apr 24 14:55:13 CDT 2020


Correctly fixing bug 48665 requires keeping track of which pages of a
PAGE_WRITECOPY mapping have been modified. Thankfully, there is already a
patchset in wine-staging that adds support for PAGE_WRITECOPY, but
unfortunately it is disabled by default because it has some bugs.

This series fixes the bugs I observed and adds an additional bit to keep
track of whether the WRITECOPY pages have been modified. This can be used
by QueryWorkingSetEx to properly report a page as shared or not.

I suggest that these patches are first applied to wine-staging to shake out
any other bugs in the patchset, since it had been disabled by default and
these patches will unconditionally enable it for x86 and x64. Provided that
no regressions are observed, we can consider whether it should go into
upstream. I suspect performance regressions are also possible.

Andrew Wesie (4):
  ntdll: Track if a WRITECOPY page has been modified.
  ntdll: Support WRITECOPY on x64.
  ntdll: Always enable WRITECOPY support.
  ntdll: Report unmodified WRITECOPY pages as shared.

 dlls/ntdll/signal_x86_64.c | 40 ++++++++++++++++++++++++++++++
 dlls/ntdll/virtual.c       | 51 +++++++++++++++++++-------------------
 2 files changed, 65 insertions(+), 26 deletions(-)

-- 
2.24.2 (Apple Git-127)




More information about the wine-devel mailing list