On Tue, Dec 17, 2019 at 8:07 PM Ken Thomases ken@codeweavers.com wrote:
Are the semantics of the fields of MEMORY_WORKING_SET_EX_BLOCK documented or explained somewhere? It's hard to comment intelligently without that.
Not really. My knowledge is limited to what my test has shown: - Demand-zero page is "Invalid" - Once you read from a demand-zero page (or write to it), it is now "Valid" - If you change a page protection to NOACCESS or GUARD, it is "Invalid" - If you change a page protection from NOACCESS or GUARD to READ_ONLY, READWRITE, ... without GUARD, it is still "Invalid" - If you then read from that page (or write to it), it is now "Valid"
Those are the semantics that I am having a difficult time replicating on Linux without causing additional faults. /proc/pid/pagemap lets us handle the demand-zero page, which is most the common case.
-Andrew