Hello
Today I'm working on virtual machines working set size tracking in xen
hypervisor.
I follow the vmware approch I read in this article:
https://www.google.fr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&sqi=2&ved=0CCEQFjAA&url=https%3A%2F%2Fwww.usenix.org%2Fevents%2Fosdi02%2Ftech%2Fwaldspurger%2Fwaldspurger.pdf&ei=18cJVcqNH5HuaM-agIgK&usg=AFQjCNHbfSzjSGUcjHtYGij7Yz6xmQIm0w&sig2=D3GOzsjJVlO7Pp5-RXTeSw&cad=rja
ESX Server uses a statistical sampling approach to ob-
tain aggregate VM working set estimates directly, with-
out any guest involvement. Each VM is sampled inde-
pendently, using a configurable sampling period defined
in units of VM execution time. At the start of each sam-
pling period, a small number of the virtual machine’s
“physical” pages are selected randomly using a uniform
distribution. Each sampled page is tracked by invalidat-
ing any cached mappings associated with its PPN, such
as hardware TLB entries and virtualized MMU state.
The next guest access to a sampled page will be inter-
cepted to re-establish these mappings, at which time a
touched page count is incremented. At the end of the
sampling period, a statistical estimate of the fraction
of memory actively accessed by the VM is f = t/n.
The algorithm is easy to understand. but I have a real problem while
implementing it.
I don't how I can invalidate all cache mapping with the select physical
number. it's simple to invalidate tlb mapping by flushing the tlb
but I cannot invalidate page table entries that map the selected
physical number because I cannot get the virtual address of the physical
number.
I have the virtual addresse of page table entries only during the
hypercall HYPERVISOR_mmu_update. but this give only the address of the
pages to be updated.
Please can someone help me to resole this issue.
Thank you for your help
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel