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/
Home Products Support Community News


[Xen-devel] How hypervisor accesses machine address

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] How hypervisor accesses machine address
From: LIU Wei <liuw@xxxxxxxxx>
Date: Wed, 30 Dec 2009 21:25:37 +0800
Delivery-date: Wed, 30 Dec 2009 05:26:19 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
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/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Hi, all

The Definitive Guide to the Xen Hypervisor writes: "The hypervisor
already has all of the pages in physical memory mapped into its
address space..."

So, I do following experiment. All operations are done in the
hypervisor, in a hypercall written by myself:

1. provide a mfn, denoted as maddr, which refers to a machine frame of
   an running domain.

2. calculate vaddr=__va(maddr) .

3. access this page through vaddr.

But Xen generates a fatal page fault and the whole system hangs. Since
I'm not very familiar with memory management issue, I don't know how
to let the hypervisor access arbitary machine address. Did I
use wrong macro/function? Or did I misunderstand the book? Any one
can give me a hint?

Thanks in advanced.


Xen-devel mailing list

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