WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] relationship of the auto_translated_physmap feature and the

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] relationship of the auto_translated_physmap feature and the shadow_mode_translate mode of domain
From: "HuYanyan" <huyanyan@xxxxxxxxxxxxxxx>
Date: Fri, 30 May 2008 22:45:36 +0800
Delivery-date: Fri, 30 May 2008 07:47:02 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
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
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] relationship of the auto_translated_physmap feature and the shadow_mode_translate mode of domain, HuYanyan <=