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

[Xen-devel] Question about MMUEXT_PIN_L3_TABLE


  • To: xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: "W. Michael Petullo" <mike@xxxxxxxx>
  • Date: Thu, 8 Jul 2010 05:57:40 -0500
  • Delivery-date: Thu, 08 Jul 2010 03:54:26 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

I am trying to port Ethos, a security research kernel, to Xen on
x86+PAE. Ethos currently works fine under Xen when PAE is disabled. My
problem has to do with setting up the page tables for the first user-mode
process when the processor is in PAE mode. 

The kernel sets up its page tables and then creates an L3 page directory
pointer table (one page) for the user process. Next, the kernel
copies its L3 entry into the user process L3 table (kernel memory
starts at 0xc0000000) and zeroes out the three other entries. The
kernel then tries to pin the table using HYPERVISOR_mmuext_op() /
MMUEXT_PIN_L3_TABLE. Pinning fails, with Xen logging the following:

(XEN) mm.c:1185:d13 PAE L3 slot is shared
(XEN) mm.c:1393:d13 Failure in alloc_l3_table: entry 4
(XEN) mm.c:2070:d13 Error while validating mfn 79f0a (pfn 4c2) for type 
60000000: caf=80000003 taf=60000001
(XEN) mm.c:2700:d13 Error while pinning mfn 79f0a

I have not yet had any luck finding the cause of this. From what I
can tell, the kernel's page tables are valid. The kernel initializes
memory and performs many other initializations successfully before this
point. Does anyone have any suggestions?

-- 
Mike

:wq

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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