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] Re: VP problematic for backend drivers on IA64?

To: "Magenheimer, Dan (HP Labs Fort Collins)" <dan.magenheimer@xxxxxx>
Subject: [Xen-devel] Re: VP problematic for backend drivers on IA64?
From: Muli Ben-Yehuda <mulix@xxxxxxxxx>
Date: Sat, 21 Jan 2006 00:17:01 +0200
Cc: Jon Mason <jdmason@xxxxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, okrieg@xxxxxxxxxx
Delivery-date: Fri, 20 Jan 2006 22:26:03 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <516F50407E01324991DD6D07B0531AD5903605@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
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>
References: <516F50407E01324991DD6D07B0531AD5903605@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.11
On Fri, Jan 20, 2006 at 09:08:21AM -0800, Magenheimer, Dan (HP Labs Fort 
Collins) wrote:
> Hi Muli --
> I'm cc'ing the xen-ia64-devel list as many of the
> Xen/ia64 team don't keep up with xen-devel...

Actually, you didn't :-)

> The backend drivers have a lot of code that assume P2M.
> Blkback has been "ported" to handle P==M but netback
> never was.  Neither has been "ported" to VP yet so there
> is some work to do.  It may turn out to be easy (e.g.
> #define'ing a few macros to be no-ops).  However, there's
> likely to be some subtle changes too as there was for P==M.

Where can I find the diff for blkback to work P==M? is this integrated
into xen-unstable or is it in the IA64 tree?

> But the real problem is not really in the backend drivers,
> it is in the lower layers of the driver stack that the
> backend drivers sit on top of.  VP means that the machine
> addresses are hidden to the domain.  But domain0 (and
> future driver domains) still need to program DMA-capable
> devices, both for any domain0 I/O and for I/O on behalf
> of domU's (via blkfront/blkback).  Thus, domain0 cannot
> really be fully VP.

Linux provides the DMA-API abstraction, so that drivers do not need to
be aware of the deails of translating from a guest-physical address to
a bus address (akak machine address). Theoretically, a DMA-API
implementation is the only part of the dom0 Linux kernel that would
need to know to read the P2M table (P2M) or do nothing (P=M) or call
into Xen to get the tanslation (VP without IOMMU) or call into Xen to
establish an IOMMU mapping (VP w/ IOMMU).

> I think what we discussed at the summit was a modified form
> of VP which is somewhere between VP and P2M.  All RAM
> addressing is VP, but all device addressing needs to be
> P2M.   It was observed that since an IOMMU intercepts all
> device addressing (and only device addressing), by ensuring
> that domain0 (and any driver domain) only has device
> addressing via a "software IOMMU", the problem should be
> solved.

Unless the machine has a real HW IOMMU, the device must see bus
addresses, which means the driver must pass it bus addresses. The
"virtual IOMMU" therefore becomes a DMA-API implementation which calls
into Xen for P->Bus translation.

> That just about exhausts my expertise in this area, so
> others can feel free to jump in (and please correct my
> mistakes).

I think it makes sense. Does IA64 already implement VP dom0? are there
any plans for x86(-64) VP dom0?

Muli Ben-Yehuda
http://www.mulix.org | http://mulix.livejournal.com/

Xen-devel mailing list

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