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: [Fwd: RE: [Xen-devel] Fwd: Need help - Assigning PCI device to HVM W

To: aball@xxxxxxxxxxxxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: RE: [Fwd: RE: [Xen-devel] Fwd: Need help - Assigning PCI device to HVM Windows domain]
From: "Petersson, Mats" <Mats.Petersson@xxxxxxx>
Date: Thu, 16 Nov 2006 16:49:59 +0100
Cc: "Langsdorf, Mark" <mark.langsdorf@xxxxxxx>
Delivery-date: Thu, 16 Nov 2006 07:51:15 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <1163691846.24087.21.camel@localhost>
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: AccJljQUkq4XiNiXQuS/YANSwtaCUgAABYkA
Thread-topic: [Fwd: RE: [Xen-devel] Fwd: Need help - Assigning PCI device to HVM Windows domain]
 

> -----Original Message-----
> From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx 
> [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Andrew D. Ball
> Sent: 16 November 2006 15:44
> To: xen-devel@xxxxxxxxxxxxxxxxxxx
> Subject: [Fwd: RE: [Xen-devel] Fwd: Need help - Assigning PCI 
> device to HVM Windows domain]
> 
> -------- Forwarded Message --------
> From: Andrew D. Ball <aball@xxxxxxxxxxxxxxxxxx>
> Reply-To: aball@xxxxxxxxxxxxxxxxxx
> To: Petersson, Mats <Mats.Petersson@xxxxxxx>
> Subject: RE: [Xen-devel] Fwd: Need help - Assigning PCI device to HVM
> Windows domain
> Date: Thu, 16 Nov 2006 10:43:48 -0500
> 
> For the IOMMU stuff, I wonder how far along the Calgary support is in
> Xen.  Granted, the Intel and AMD versions will become ubiquitous and
> Calgary almost certainly will not ...  Also tricks available 
> with stuff
> like AGP apertures, right?

Sure, there is some work ongoing for Calgary (according to Muli), but
that is primarily targetted towards PV domains rather than HVM domains. 

I think Mark Langsdorf has been owkring on GART-based IOMMU, but I don't
know what the status is on this...

I don't know when ours or Intels hardware will be available (I hope
sooner rather than later, because it will solve a whole bunch of peoples
problems...)

--
Mats
> 
> Peace.
> Andrew
> 
> On Thu, 2006-11-16 at 11:50 +0100, Petersson, Mats wrote:
> > This will not work!
> > 
> > The reason is that we tell Windows that it's got X MB of memory,
> > starting at address 0, like it does in a standalone system. But in
> > reality, the memory actually given to the virtual machine 
> could be ANY
> > location in memory (including a completely scattered 
> selection of memory
> > blocks). 
> > 
> > Since Windows is COMPLETELY unaware of this fact, your 
> driver will give
> > what it believes is the physical address, in the range of 
> 0..X MB to the
> > network card when it wants to send a packet of data. This 
> is of course
> > not going to work if the packet to send isn't at the 
> physical address
> > Windows thinks it is. 
> > 
> > Let's take a trivial example: We give Windows a memory size 
> of 256MB,
> > located in the contiguous section 256..512MB. The OS then 
> wants to send
> > a packet on the network card that has the virtual address 
> of 0x40867456
> > and the physical address of 0x123456 (just over 1MB), so 
> the driver gets
> > the address for the packet (0x40867456). It calls the Win32 call
> > GetPhysicalAddress(), it will get back the address that 
> Windows thinks
> > is the physical address, because it doesn't know that we've 
> lied about
> > where the memory is. This means that it will get the 
> address 0x123456.
> > This address should be in the 256MB..512MB range, but it isn't, it's
> > just over 1MB. So the packet sent will be wrong (if the network card
> > just grabs the data and there's no need for some extra 
> "stuff" around
> > the data-packet, in which case the card will just plain refuse to
> > work!). 
> > 
> > There are two solutions: 
> > 1. Implement within the driver for the network card an 
> understanding of
> > the fact that guest-physical memory (i.e. what your Windows 
> OS thinks is
> > physical addresses) and machine physical addresses (those that are
> > ACTUALLY in the machine), by adding an extra layer of 
> translation from
> > guest-physical to machine-physical where the driver is asking for a
> > physical address. Xen nows how to do this, so you should be 
> able to use
> > the para-virtual driver calling mechanism to achieve this, 
> but it does
> > assume that A) You are familiar with windows driver 
> programming, B) that
> > you have source code for the driver(s) involved with your 
> network card
> > and C) that you have a driver development kit (DDK) from MS 
> installed on
> > some machine. 
> > 
> > 2. Wait for IOMMU hardware to be available (and relevant 
> code in Xen) to
> > allow the hypervisor to map the guest-physical memory to
> > machine-physical address translation so that the guest 
> doesn't need to
> > know the difference. 
> > 
> > --
> > Mats
> > 
> > > -----Original Message-----
> > > From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx 
> > > [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of GT
> > > Sent: 16 November 2006 08:30
> > > To: xen-devel@xxxxxxxxxxxxxxxxxxx
> > > Cc: gtcharny@xxxxxxxxx
> > > Subject: [Xen-devel] Fwd: Need help - Assigning PCI device to 
> > > HVM Windows domain
> > > 
> > > I forgot to mention that I allowed MMIO/IO ports access to 
> > > WinXP according 
> > > to NIC's PCI BARs.
> > > 
> > > Thanks,
> > > 
> > > GT
> > > 
> > > ---------- Forwarded message ----------
> > > From: GT <gtcharny@xxxxxxxxx>
> > > Date: Nov 16, 2006 10:21 AM
> > > Subject: Need help - Assigning PCI device to HVM Windows domain
> > > To: xen-devel@xxxxxxxxxxxxxxxxxxx 
> > > <mailto:xen-devel@xxxxxxxxxxxxxxxxxxx> 
> > > 
> > > Hi,
> > > 
> > > I am a newbie to Xen and I am trying to assign PCI NIC to 
> > > Windows domain. I performed below steps, with no luck.
> > > It would be great if someone could point me to the right 
> direction. 
> > > 
> > > I did as follows:
> > > 
> > > 1) I've got WinXP installed over Xen, and got network working 
> > > with pcnet model
> > > 2) I've hidden NIC from dom0 and verified that it does not 
> > > appear with lspci
> > > 3) I've added interception of PCI scan from HVM domain (using 
> > > 0xcf8/0xcfc ports interception), 
> > > and when the PCI bud/dev/fun matched my physical NIC, I 
> > > returned physical vendor/device id.
> > > 4) I've rebuilt/reinstalled all images, but WinXP didn't 
> > > recognize any NIC device.
> > > 
> > > Thanks ahead,
> > > 
> > > GT
> > > 
> > > 
> > > 
> > 
> > 
> > 
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@xxxxxxxxxxxxxxxxxxx
> > http://lists.xensource.com/xen-devel
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
> 
> 
> 



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

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