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


RE: [Xen-devel] guest physical to xen machine copy?

To: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>, "Xen-Devel (E-mail)" <xen-devel@xxxxxxxxxxxxxxxxxxx>, "Tian, Kevin" <kevin.tian@xxxxxxxxx>
Subject: RE: [Xen-devel] guest physical to xen machine copy?
From: Dan Magenheimer <dan.magenheimer@xxxxxxxxxx>
Date: Tue, 30 Sep 2008 20:05:56 +0000 (GMT)
Delivery-date: Tue, 30 Sep 2008 13:08:02 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <C50784B1.1DB5F%keir.fraser@xxxxxxxxxxxxx>
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
Thanks for your help.  I finally got all of this working.
Interestingly, I think my problem was aliasing: I was
writing from one virtual address in the guest and reading
from another virtual address in Xen, with both mapped
to the same machine address.  Adding mb() appropriately
seemed to resolve the problem.


> -----Original Message-----
> From: Keir Fraser [mailto:keir.fraser@xxxxxxxxxxxxx]
> Sent: Tuesday, September 30, 2008 12:25 AM
> To: Dan Magenheimer; Xen-Devel (E-mail); Tian, Kevin
> Subject: Re: [Xen-devel] guest physical to xen machine copy?
> On 29/9/08 23:30, "Dan Magenheimer" 
> <dan.magenheimer@xxxxxxxxxx> wrote:
> > Then I gather I need to be passing an mfn to Xen instead
> > of a gpfn.  To do so, it looks like I call pfn_to_mfn()
> > in the paravirtualized guest.  But how can this work
> > on a 32-bit-PV-on-64-bit-Xen since pfn_to_mfn() returns
> > an unsigned long?
> So what?
> > Also, once I've got an (pvguest-translated-gpfn-to-) mfn
> > inside of Xen, do I still do a gfn_to_mfn() on it?
> > (Shouldn't matter because it just returns the gfn, right?)
> Yes, gfn here means what-the-guest-thinks-is-an-mfn. That's 
> pfn for an HVM
> guest; mfn for a PV guest.
>  -- Keir

Xen-devel mailing list