[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Question about mmu_update


I have some problems with mmu_update. I'm trying to map in the grant
table frames onto the address 0xeff00000. Therefore, I want to install
a page table for that region of memory. However, I get error messages
from Xen when trying to install the page table into the page

(XEN) DOM216: (file=mm.c, line=351) Could not get page ref for pfn a01c0183
(XEN) DOM216: (file=mm.c, line=2141) Could not get page for normal update

The code is

new[NR_GRANT_FRAMES].ptr = phys_to_machine(to_phys(pgdir)) + sizeof(void*) * 
new[NR_GRANT_FRAMES].val = phys_to_machine(pgtab) | (L1_PROT & ~_PAGE_RW);

BUG_ON(HYPERVISOR_mmu_update(new, 1, NULL, DOMID_SELF) < 0);

(mostly taken from the Mini-OS). The page directory (from
start_info_t) is at:

Virtual    : 0xc21c4000   pgdir
Pseudo-phys: 0x021c4000   to_phys(pgdir)
Machine    : 0x048a6000   phys_to_machine(to_phys(pgdir))

And the ptr mmu_update_t is

ptr        : 0x048a6efc
val        : 0x04899021

Do I pass the wrong arguments to the mmu_update_t? Isn't the arguments
supposed to be the physical address of the page table entry/page
directory entry (ptr) and the new entry (val). I'm working on x86.

// Simon

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.