[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |