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

[Xen-devel] relationship of the auto_translated_physmap feature and the shadow_mode_translate mode of domain


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "HuYanyan" <huyanyan@xxxxxxxxxxxxxxx>
  • Date: Fri, 30 May 2008 22:45:36 +0800
  • Delivery-date: Fri, 30 May 2008 07:47:02 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AcjCY88E3vLT2dQARiew32qCI107Sw==

Hi All,

    I'm studing the memory management of Xen, I noticed the Domain0 kernel(Linux) declared its features in the .section __xen_guest, just like this:

 

/*linux-2.6-xen-sparse/arch/i386/kernel/head-xen.S*/

         .ascii  ",FEATURES=writable_page_tables"

         .ascii                  "|writable_descriptor_tables"

         .ascii                  "|auto_translated_physmap"

         .ascii                  "|pae_pgdir_above_4gb"

         .ascii                  "|supervisor_mode_kernel"

 

   All these features information will be parsed by xen before the domain0 kernel image was loaded, and I noticed when the hypervisor responded to the HYPERVISOR_xen_version(XENVER_get_features, &fi) hypercall of domain0, it will check the PG_translate and PG_SH_enable flags of d->arch.paging.mode of the calling domain to determine how to fill the output parameter fi, just like this:

 

/*xen/common/kernel.c*/

if ( shadow_mode_translate(current->domain) )

                fi.submap |=

                    (1U << XENFEAT_writable_page_tables) |

                    (1U << XENFEAT_auto_translated_physmap);

 

    and domain0 kernel will use this information to determine how to set its own feature flags, and whether to do the p2m and m2p translation between pfn and mfn, the following is an example:

 

/*linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/maddr.h */

static inline unsigned long pfn_to_mfn(unsigned long pfn)

{

         if (xen_feature(XENFEAT_auto_translated_physmap))

                   return pfn;

         BUG_ON(max_mapnr && pfn >= max_mapnr);

         return phys_to_machine_mapping[pfn] & ~FOREIGN_FRAME_BIT;

}

 

    What I want to know is whether there are some relationship between the auto_translated_physmap feature and the shadow_mode_translate mode of domain, do they have the same meaning? I think this feature will work(Guest kernel do the p2m and m2p translation) only when the shadow mode of domain is enabled, but this is not true for domain0 because it's a paravirtualized domain, why did it still declare this feature? I am looking forward to your response, thank you very much.

 

 

Regards,

HUYanyan

 

_______________________________________________
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®.