Hi Tony,
Thanks again for the thorough explanation,
Now it makes sense in my head.
Thanks also to Maxim for his reply.
Regards,
Johny Baron.
-----Original Message-----
From: Tony Mason [mailto:xxxxx@osr.com]
Sent: Wednesday, January 02, 2002 7:33 PM
To: File Systems Developers
Subject: [ntfsd] RE: [OT] When does the Working set manager invalidate s PT
E’s to share d pages?
Think of memory as being divided into two categories: shared pages and
non-shared pages. The issue we are discussing deals with shared pages.
For shared pages there is a prototype PTE. The PFN entry for the physical
page will refer back to the prototype PTE. The process PTE will be
“constructed” using the prototype PTE. If the ONLY reference to the
physical page is from the prototype PTE, then the physical page can be
reclaimed (of course, the prototype PTE is updated as appropriate). So, as
individual processes age out shared pages, the share count is decremented.
Thus, reclamation becomes an option when the prototype PTE is the only
remaining reference.
For non-shared pages, the PFN refers back to the ONE PTE entry that owns
that physical page. That’s a separate case, though, and not the one of keen
interest to file systems developers.
Reclaiming non-shared pages is “faster” to return physical memory, but it is
not the ONLY way to achieve to achieve this effect.
Oh, and it is worth mentioning that the cache manager has a working set as
well…
Did I mention that VM is complicated? And getting more complicated with each
new OS release!
Regards,
Tony
Tony Mason
Consulting Partner
OSR Open Systems Resources, Inc.
http://www.osr.com
-----Original Message-----
From: Yoni Baron [mailto:xxxxx@camelot.com]
Sent: Wednesday, January 02, 2002 3:58 AM
To: File Systems Developers
Subject: [ntfsd] RE: [OT] When does the Working set manager invalidate s PT
E’s to share d pages?
Hi Tony,
Thanks for the answer.
Tell me if I understand this right:
The Working Set contains a list of all valid PTEs,
And when the last reference to a shared page is deleted (when the working
set tuner invalidates the last PTE),
then the working set tuner will move the page to the modified or standby
list.
If this so, why does the PFN entry need a back pointer to the referencing
PTE?
I thought it is needed for finding the PTEs in a working set. I thought that
the PTEs where found by checking the PFN database
and collecting pages with the same Working set ID.
Regards,
Johny Baron.
-----Original Message-----
From: Tony Mason [mailto:xxxxx@osr.com]
Sent: Tuesday, January 01, 2002 3:48 PM
To: File Systems Developers
Subject: [ntfsd] RE: [OT] When does the Working set manager invalidates PT
E’s to share d pages?
Johnny,
The physical pages are tracked as part of the working set for the process;
thus, the pages will be trimmed out (the PTE will be modified and the
physical page will be removed from the working set) by the balance set
manager as needed.
Regards,
Tony
Tony Mason
Consulting Partner
OSR Open Systems Resources, Inc.
http://www.osr.com
-----Original Message-----
From: Yoni Baron [mailto:xxxxx@camelot.com]
Sent: Tuesday, January 01, 2002 8:06 AM
To: File Systems Developers
Subject: [ntfsd] [OT] When does the Working set manager invalidates PTE’s to
share d pages?
This is a question regarding sharing memory in NT.
After a PTE that refers to a shared page becomes valid, It points into the
page in memory
and not to the prototype PTE.
In case where multiple PTEs point to the same page in memory, the reference
count in the
PFN database for this page will be the number of referencing PTEs.
The Working Set memanger will not be able to remove this page while it’s
reference count
drops to zero.
When will the reference count drop to zero?
I know that explicitly unmapping a view of file will remove the PTEs and
thus decrement the
page’s refernce count, But in a normal operation where a process has a view
of a DLL, when
will the VMM page out shared DLL pages?
Regards,
Johny Baron.
You are currently subscribed to ntfsd as: xxxxx@osr.com
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntfsd as: xxxxx@camelot.com
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntfsd as: xxxxx@osr.com
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntfsd as: xxxxx@camelot.com
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntfsd as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntfsd-$subst(‘Recip.MemberIDChar’)@lists.osr.com