|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] pte query?
On 11/15/05, Aaron J. Marks <ajmarks@xxxxxxxxxxxxxx> wrote:
> hi,
>
> what's the best way (if at all) to iterate through all of a domain's page
> tables within xen 2.0.6? i need to find all references to a specific pte
> value (which is a given). essentially, a reverse page-table lookup.
This is not something you wish to do in a production system, though I
can imagine situations where this would be useful for debugging.
Basically, you will have to instrument Xen with a n-level nested loop,
that does something like (show here for 2-level x86-32 ptes):
unsigned long* pgd = map_domain_page(d->arch.mm->pgd)
for(i=0; i<HYPERVISOR_VIRT_START>>22; i++)
{
if( pgd[i] & _PAGE_PRESENT) {
unsigned long* ptes = map_domain_page( pgd[i]>>12);
for(j=0; j<1024; j++) {
if( ptes[j] & _PAGE_PRESENT && ptes[j]>>12==my_mfn) {
printk("found it!\n");
}
unmap_domain_page(ptes);
}
}
Good luck,
Jacob
--
Save time and bandwidth with EDelta: http://www.diku.dk/~jacobg/edelta/
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|