static int is_present_pte(unsigned long pte)
{
- print_func_entry();
- print_func_exit();
+ //print_func_entry();
+ //print_func_exit();
return pte & PT_PRESENT_MASK;
}
static int is_writeble_pte(unsigned long pte)
{
- print_func_entry();
- print_func_exit();
+ //print_func_entry();
+ //print_func_exit();
return pte & PT_WRITABLE_MASK;
}
static int is_io_pte(unsigned long pte)
{
- print_func_entry();
- print_func_exit();
+ //print_func_entry();
+ //print_func_exit();
return pte & PT_SHADOW_IO_MARK;
}
ASSERT((gpa & HPA_ERR_MASK) == 0);
slot = gfn_to_memslot(vcpu->litevm, gpa >> PAGE_SHIFT);
+ printk("GFN %016lx memslot %p\n", gpa>>PAGE_SHIFT, slot);
if (!slot) {
+ printk("GFN_TO_MEMSLOT FAILED!\n");
print_func_exit();
return gpa | HPA_ERR_MASK;
}
page = gfn_to_page(slot, gpa >> PAGE_SHIFT);
+ printk("Page is %p\n", page);
print_func_exit();
+ printk("gpa_to_hpa: return %016lx\n", ((hpa_t) page2ppn(page) << PAGE_SHIFT)
+ | (gpa & (PAGE_SIZE - 1)));
return ((hpa_t) page2ppn(page) << PAGE_SHIFT)
| (gpa & (PAGE_SIZE - 1));
}
print_func_entry();
int level = PT32E_ROOT_LEVEL;
hpa_t table_addr = vcpu->mmu.root_hpa;
+printk("nonpaging_map: v %016lx, p %016lx\n", v, p);
+hexdump(KADDR(p), 32);
for (;; level--) {
uint32_t index = PT64_INDEX(v, level);
}
if (table[index] == 0) {
- hpa_t new_table = litevm_mmu_alloc_page(vcpu,
- &table[index]);
+ hpa_t new_table = litevm_mmu_alloc_page(vcpu, &table[index]);
if (!VALID_PAGE(new_table)) {
pgprintk("nonpaging_map: ENOMEM\n");
int ret;
gpa_t addr = gva;
+printk("nonpaging_page_fault: %016llx\n", gva);
ASSERT(vcpu);
ASSERT(VALID_PAGE(vcpu->mmu.root_hpa));
hpa_t page_addr = vcpu->mmu.root_hpa;
int level = vcpu->mmu.shadow_root_level;
+printk("paging_inval_page: addr %016lx\n", addr);
++litevm_stat.invlpg;
for (;; level--) {
struct page *page;
struct litevm_mmu_page *page_header = &vcpu->page_header_buf[i];
- if ((page = kpage_alloc_addr()) == NULL)
+ if (kpage_alloc(&page) != ESUCCESS)
goto error_1;
page->pg_private = page_header;
- page_header->page_hpa = (hpa_t) page2ppn(page) << PAGE_SHIFT;
+ page_header->page_hpa = (hpa_t) page2pa(page);
memset(KADDR(page_header->page_hpa), 0, PAGE_SIZE);
LIST_INSERT_HEAD(&vcpu->link, page_header, link);
}