RFC: KUSER_SHARED_DATA update patch to fix bug 29168

Francois Gouget fgouget at free.fr
Mon Apr 9 12:46:08 CDT 2012


On Thu, 22 Mar 2012, Kornél Pál wrote:
[...]
> A bit better approach was to mark that page PAGE_GUARD. Then wine could get an
> indication that it needs to be updated. Frequent accesses were not impacted
> because PAGE_GUARD could be reset by an APC some time later.

Why reset PAGE_GUARD?
Would the following work ?
 * By default wineserver (or a separate process) does not update the
   shared page. This way there's no overhead.
 * The page is marked as PAGE_GUARD. When a process accesses it, the 
   user code makes an RPC to the wineserver (or the separate process) to 
   tell it to start updating the page and removes the PAGE_GARD flag.
 * The application can now access the page and gets smoothly updated 
   timestamps.
 * The wineserver (or the separate process) keeps track of which 
   processes need its services. When the last of them exits, it stops 
   updating the shared page so there's no overhead anymore.

-- 
Francois Gouget <fgouget at free.fr>              http://fgouget.free.fr/
          The last time religion ruled, it was called the dark ages.


More information about the wine-devel mailing list