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

RE: [Xen-devel] pfn to mfn mapping for HVM domains?

To: "Bryan D. Payne" <bryan@xxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: RE: [Xen-devel] pfn to mfn mapping for HVM domains?
From: "Tian, Kevin" <kevin.tian@xxxxxxxxx>
Date: Wed, 1 Nov 2006 14:50:29 +0800
Delivery-date: Thu, 02 Nov 2006 13:54:49 -0800
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: Acb9f2bYCUoLsFjrSqmefXsBtyQ27AAAVtWg
Thread-topic: [Xen-devel] pfn to mfn mapping for HVM domains?
>From: Bryan D. Payne
>Sent: 2006年11月1日 14:31
>
>> thing in PV domains.  Try using xc_translate_gpfn_list instead, which
>> does P2M translation on HVM domains.
>
>I'm having trouble with the value returned from this function.  I've
>been working on this for a while and my conclusion is that there must
>be an error in my logic (most likely!) or a bug in this function.
>Perhaps someone could help me figure out which it is...
>
>These are the steps that I'm taking:
>
>* Assume that I have an HVM domain running fedora core 5.  My goal is
>to view the memory page holding the symbol swapper_pg_dir (the kernel
>page global directory, or kpgd for short).
>
>* I lookup the virtual address for kpgd in the System.map file
>
>* I subtract 0xc0000000 from the virtual address to get the physical
>address (which should be valid since this is kernel memory and the
>PAGE_OFFSET for this kernel is 0xc0000000).
>
>* I convert the physical address to a pfn by bit shifting PAGE_SHIFT
>bits to the right
>
>* I translate the pfn to a mfn using the
>xc_domain_translate_gpfn_list function
>
>* I mmap the mfn using xc_map_foreign_range
>
>After doing this, the page that is returned from xc_map_foreign_range
>does not appear to be the correct page.  The offset where the kpgd
>should be located contains all zeros, which can't be correct.
>
>I've tried the same steps with other kernel symbols as well.  Each
>time I get a valid mfn returned by xc_domain_translate_gpfn_list.
>But each time when I map this mfn, the expected information is not on
>that page, so I conclude that the mfn is not correct.
>
>With the exception of the pfn to mfn conversion step, I can do the
>exact same steps on a PV domain and it works every time.  So I'm
>inclined to think that my logic for converting a virtual address to a
>pfn is valid.  Does this imply that there's a bug in
>xc_domain_translate_gpfn_list or am I misinterpreting the function's
>output?
>
>Thanks,
>bryan
>

Xc_domain_translate_gpfn_list should look at target domain's 
p2m table directly. One simple way you may make a check, since 
swapper_pg_dir sits at fixed virtual address and thus fixed guest 
physical address by identity mapping:
        - First calculate gpfn of swapper_pg_dir as what you're doing now
        - Add a check upon target gpfn in shadow_set_p2m_entry. If 
gfn equals to target gpfn, print the corresponding mfn. This is the first 
time when p2m entry is setup for target gpfn.
        - compile xen, reboot machine, re-create your hvm guest.

Then check whether the result of Xc_domain_translate_gpfn_list 
equals to above xen print. If they don't equal, something definitely 
goes wrong.

Thanks,
Kevin

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

<Prev in Thread] Current Thread [Next in Thread>