Re: ntdll WRITECOPY dropped from staging

Zhiyi Zhang <[email protected]>
Newsgroups gmane.comp.emulators.wine.devel
Message-ID <[email protected]>
Hi Fabian,

It should be done with userfaultfd. I have a WIP branch at https://gitlab.winehq.org/zhiyi/wine/-/tree/bug-23670-implement-write-copy-with-userfaultfd.
The writecopy part is working. However, the performance impact is a concern. Some games call |VirtualQuery() tens of thousands of times and any slowdown
makes these games stutter. Also, Paul mentioned that we should implement making shared pages private and make it work alongside PAGE_WRITECOPY so that
it's both correct feature wise and performance wise. It needs more work.

As for why not using signals to track page faults for implementing WRITECOPY. There are a few issues with that approach. First, it's too slow. Second, signals
may be blocked.
|
Best Regards,
Zhiyi

On 9/29/24 01:55, Fabian Maurer wrote:
> Hello,
>
> I noticed that the ntdll WRITECOPY changes got mostly dropped from staging in
> commit https://github.com/wine-staging/wine-staging/commit/
> 16dce521242b3f4a52cd2c8799ce6fe464fac83c
>
>> The current state even after multiple iterations, the whole
>> WRITECOPY implemenet needs differently.  Upstream will need to
>> do this.
> As I understand it, the implementation marks WRITECOPY pages as read-only on
> the unix side, handling the access violation and marking it as read-write
> afterwards. (Correct me if I'm wrong)
>
> What is wrong with the underlying concept, how should it be implemented
> properly?
>
> Regards,
> Fabian Maurer
>
>
>
>  
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.