Michael Vrable
2005-Feb-21 21:29 UTC
[Xen-devel] Full Shadow Mode and phys_to_machine_mapping
I''m trying to figure out how full shadow mode is implemented; I understand that this only works with VMX support at the moment. The phys_to_machine_mapping function is giving me a bit of trouble. This function seems to be used to look up an entry in the PFN-to-MFN mapping table, which as I understand it for full shadow mode should be maintained by Xen instead of the domain. This table can be up to 4 MB in size. __phys_to_machine_mapping is set to point at the per-domain virtual memory area. Isn''t this area already used for per-domain GDT/LDT mappings, leaving no room for the PFN-to-MFN table? I haven''t been able to find where in the code the PFN-to-MFN table is ever initialized, either. What am I missing? --Michael Vrable ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
Ian Pratt
2005-Feb-21 21:53 UTC
RE: [Xen-devel] Full Shadow Mode and phys_to_machine_mapping
> I''m trying to figure out how full shadow mode is implemented; I > understand that this only works with VMX support at the moment. The > phys_to_machine_mapping function is giving me a bit of trouble.Translate mode is currently being back-ported to para-virt guests too, mostly to enable some definitive performance measurements.> This function seems to be used to look up an entry in the PFN-to-MFN > mapping table, which as I understand it for full shadow mode should be > maintained by Xen instead of the domain. This table can be up to 4 MB > in size. __phys_to_machine_mapping is set to point at the per-domain > virtual memory area.It should be set to point at the 4MB area previously used by the guests read-only mapping of the machine to phys table. If it''s not (can''t remember) it needs moving.> Isn''t this area already used for per-domain > GDT/LDT mappings, leaving no room for the PFN-to-MFN table? I haven''t > been able to find where in the code the PFN-to-MFN table is ever > initialized, either. What am I missing?It''s stored in a format that looks like pte''s so that it can also be used as a VM-x guest''s 1:1 pagetable when paging is disabled (e.g. boot time). The table is potentially sparse, allow e.g. BIOS pages at the top of physcial memory. We''re hoping to write this stuff up for a paper -- stay tuned. Ian ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id396&op=click _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
Arun Sharma
2005-Feb-23 23:22 UTC
Re: [Xen-devel] Full Shadow Mode and phys_to_machine_mapping
On 2/21/2005 1:29 PM, Michael Vrable wrote:> I''m trying to figure out how full shadow mode is implemented; I > understand that this only works with VMX support at the moment. The > phys_to_machine_mapping function is giving me a bit of trouble. > > This function seems to be used to look up an entry in the PFN-to-MFN > mapping table, which as I understand it for full shadow mode should be > maintained by Xen instead of the domain. This table can be up to 4 MB > in size. __phys_to_machine_mapping is set to point at the per-domain > virtual memory area. Isn''t this area already used for per-domain > GDT/LDT mappings, leaving no room for the PFN-to-MFN table?For VMX guests, even though the guest thinks that it''s executing in physical mode, the processor actually has paging enabled. So we need page tables which map PFNs to MFNs. We call this the 1:1 page table. Ian suggested that we could reuse the 1:1 page table for this purpose. This reduces code/data duplication and we also get the support for a sparse physical map as a bonus!> I haven''t > been able to find where in the code the PFN-to-MFN table is ever > initialized, either. What am I missing?The 1:1 page table is initialized in xc_vmx_build.c and the pdes for PFN-to-MFN table are setup in alloc_monitor_pagetable() -Arun ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel