VMware Cloud Community
taylorjonl
Enthusiast
Enthusiast

VMDirectPath and ATI Radeon

I am using VMware ESXi and I am trying to setup a guest that is Windows 7 that will have an ATI Radeon video card passed through to it.  I actually had this working on a previous system but I had to reinstall.  Now when I do this the guest fails to start and I get the following:

Error message from localhost.XXXXXXXXXXX:
PCIPassthru 004:00.0: Guest tried to (null)map
32 device pages (with base address of 0xb5d20)
to a range occupied by main memory. This is
outside of the PCI Hole. Add pciHole.start =
"2909" to the configuration file and then power
on the VM.
error
12/23/2010 1:04:36 PM
media
User

When I do as it asks, the guest now starts but gets an immediate BSOD concerning memory management.  Any ideas on why this is occuring and why it worked at one point but now it fails?

814 Replies
taylorjonl
Enthusiast
Enthusiast

So if I recreate the VM and only give it 2gb of RAM instead of 4gb of RAM it works fine.  The host has 12gb of RAM and no other VMs running, yet.  This information helpful?

Reply
0 Kudos
Dave_Mishchenko
Immortal
Immortal

If you change the RAM back to 4 GB on the VM does it have the problem again?  What model of Radeon card are you using?

Reply
0 Kudos
taylorjonl
Enthusiast
Enthusiast

Yes, if I setup the VM as 2gb, it runs fine, if I then change it to say 3gb it has an issue.  It is an ATI Radeon 5670.

Reply
0 Kudos
Dave_Mishchenko
Immortal
Immortal

Could you post a screen shot of the BSOD?  When you change the memory setting is the memory reservation also changing to match the value that you set the VM to have?

Reply
0 Kudos
taylorjonl
Enthusiast
Enthusiast

All it says is MEMORY MANAGEMENT, no codes, just that.  I may not be doing this anymore, I was doing this to setup a Windows Media Center for a Ceton InfiniTV card but it seems that because ESXi has a video controller I can't remove, it makes the system not HDCP compliant.  So unless I can figure out a way to resolve that I can't do this.

Reply
0 Kudos
NetMika
Contributor
Contributor

Hi, I exactly face the same issue with Windows 7 Ultimate 64 bits and ATI RADEON 4550 PCIe

If i still under 2GB VM work fine, but If I go upper 2GB VM goes to blue screen.

If anybody have an idea

I really appreciate

Reply
0 Kudos
twood201110141
Contributor
Contributor

Hello

I have exactly the same problem.

I'm running an ESXi 4.1 with my ATI Radeon 5450 (1GB Pcie card) VMDirectPath enabled.

When the VM that has this card attached and also configured with 4GB of RAM it will fail to power on.

this is from vmware.log

[msg.pciPassthru.mmioOutsidePCIHole] PCIPassthru 003:00.0: Guest tried to map 32 device pages (with base address of 0xb5d20) to a range occupied by main memory. This is outside of the PCI Hole. Add pciHole.start = "2909" to the configuration file and then power on the VM.

When I add this parameter it will fail again and suggest another value. When I put that value it will fail again and suggest the value 2888

WIth this value it will power on eventually but it will imediately crash to a BSOD. You can see the screenshot attached.

I have tried to modify BIOS settings and change cache options but nothing works!

The only way to make it work is to reduce the memory to 2GB.

I always check to have equal configured RAM with the reserved RAM.

I have tested this with Win XP 32bit, Win7 32bit and Win7 64 bit. The problem is always the same.

I even have tried this with another card an ATI 4890 graphics card and again I had the same problem!

Any ideas?

Reply
0 Kudos
twood201110141
Contributor
Contributor

Actually the BSODs are almost on every reboot different!

I have seen 0x03b, 0x024 and others as well!

This is bad...

Reply
0 Kudos
NetMika
Contributor
Contributor

exactly the same:

         - issue start by "add pcihole.start=2909" message

         - BSOD's message was never the same  but always happen

         - I try to change "virtual bios" option one by one

I still have to test recreating a new VM with pass-through enable before installing Windows.

Reply
0 Kudos
taylorjonl
Enthusiast
Enthusiast

I tried that, I actually reinstalled VMware thinking I had messed up my installation somehow.  Nothing helped.

Reply
0 Kudos
twood201110141
Contributor
Contributor

I have tried also to install windows 7 x64 with the vmdirectpath VGA attached and 2GB of ram.

Unfortunately doesn't make any difference.As soon as you increase RAM it will fail to power on.Should you add the pcihole parameter it will BSOD!

I have managed to work this out a bit with windows xp 32 bit VM and the paremeter pcihole.start="2888"

The problem is that although the VM has 4GB of RAM configured it will actually see 2.8GB of RAM (inside the OS) with this parameter Smiley Sad

At least it is functional, no BSODs or anything. Still not good enough though!

Seems we have hit a problem with passthrough devices, memory mapping, and 32bit vs 64bit configurations Smiley Sad

Could it be related to radeon cards only?

Has anyone test this with an nvidia graphics adapter or a radeon with 256MB or 512MB of GPU RAM?

I think it has also to do with the amount of RAM of your graphics card. In my case both cards i tried are 1GB cards.

The whole story reminds me of the old x86 days when you needed a miracle to go above the 2GB ram limit!

Reply
0 Kudos
taylorjonl
Enthusiast
Enthusiast

My 5670 has 512MB of RAM.

Reply
0 Kudos
Zakcar1
Contributor
Contributor

I have the exact same problem. I must also add that I tried with an ATI 5860 and an nVidia 8800GS 512mb.

My guess: The cpu doesn't switch in 64 bits mode before it initialize the ram and the PCI device. So at some point you are over 4gigs of ram.

I'll test tonight 3gigs of ram + the nvidia card.

Reply
0 Kudos
Haxxfilif
Contributor
Contributor

Hey, I also got the "add pcihole.start=2909" error when I'm trying to add my ATI HD 5450 using an existing Windows Server 2008 R2 installation. But if I create a new VM and a new Installation from scratch i don't need to add the "pcihole.start=2909" to the config, why is that, what's the difference?

Also, I got one more question. After I successfully installed my ATI HD 5450 drivers i can't use that adapter on my Windows installation. How do I change display adapter so I can use my graphic card as the primary display adapter? It's using VMWare's defult display adapter now. I have try uninstall it, disable it and upgrade it using vmware tools but without luck.

One more question Smiley Wink. I'm using the same graphic card for the console as for my VMs. I thought if I did a "vmdirectpath" for my graphic card to a virtual machine it would 'take over' the graphic card and show the VM's display output on my monitor. But that's not the case, when I'm starting my VM which got the graphic card added the Esxi console becomes black and the monitor says "no signal". I can still view all my VM's through the console tab in vsphare. How is that possible?

Am I doing something wrong, please help me in the right direction!

Thanks in advance

Greetings from Sweden :smileygrin:
Niklas

Reply
0 Kudos
twood201110141
Contributor
Contributor

Hi Niklas,

Let me try to answer your questions.

So for your first question what I have seen until now is that when you have a vm installation with more than 2GB of vRAM configured and you add a VMDirectPath Graphics adapter then you will get the pci.hole error an the VM will fail to power on.

In fact even if you do a new instalation with the VMDP graphics adapter attached you will also get the same behaviour.

The problem is even if you add the parameter to your vmx and you manage to poweron the VM you will not be able to boot this machine as you will get BSODs all the time.The only workaround seems to be to lower the vRAM configured to 2GB or below! Smiley Sad

The 32bit systems behave slightly different, but still not any beter at all (see my posts above). Could you please play a bit more and confirm you are getting also the same behaviour?

Second and third question: You can't get rid of the default vmware graphics adapter. Think of it as a system with two VGAs. You will need to go to graphics properties and choose to extend the display to the second -the VMDP- graphics adapter. Then you better choose to outpout only to that adapter to avoid any problem bettween these vmware adapter and the physical one. You will then notice that the VI console will go black and your VM will have its video output to your screen (where you once had your ESX server output) using the VMDP graphics adapter. This way you won't get any "no signal" anymore to your display

Unfortunately as soon as you power off this VM, the screen output will not redirect to your ESX's server console. It will just go black. You can reboot the ESX server to get its console back to your screen or you can use two graphics adapters if you want to have both the ESX console and the VM's VMDP display running independently.

Regards,

Theo

Reply
0 Kudos
Haxxfilif
Contributor
Contributor

Thanks alot for the reply twood! You soo made my day! :smileylaugh:

Haven't had time too test it tho' so will get back soon with the results and certainly with some more questions, hehe Smiley Happy

//Niklas

Reply
0 Kudos
TheGrave
Contributor
Contributor

Holy smokes, great instructions Theo! Seems like the problems you guys report are bugs, more and more people complain about them. I hope that VMware support team reads the forum and will provide this info to the developers for a fix.

I have a question - redirecting video output to the ESXi host monitor is great but how about keyboard and mouse? Do you need VMDirectPath for them as well or once you redirect the video output the keyboard and mouse of the ESXi host kick in (if they don't it would be very miserable as there is a two device limit for VMDirectPath as I understand)? My idea is to get full local access to one of my virtual machines (especially the Windows one), otherwise there is almost no benefit of VMDirectPath for video cards.

Off-topic: How about sound cards, have any of you guys tried to map Creative cards for example? These are the 2 pieces of hardware I'm looking forward to give direct access to the OS.

Reply
0 Kudos
Dave_Mishchenko
Immortal
Immortal

VMdirectpath deals with PCI devices.  For a mouse / keyboard you would have to add an addition mouse / keyboard via USB and redirect those to a VM.  This would require ESXi 4.1 or higher.

Reply
0 Kudos
TheGrave
Contributor
Contributor

Stupid question, sorry:) My brain is running out of energy at 7am.

As for the 2GB memory limitation - I just watched this movie:

http://www.youtube.com/watch?v=jmQ5Ej8r-aA

If you rewind to 3:00 you'll hear the guy mentioning that if you don't change sched.mem.minsize parameter to match the memory assigned to the virtual machine you will have problems starting the VM as this is an issue directly related to VMDirectPath I/O. Couldn't find in the KB anything relating this parameter to your particular issue guys but still worth a try.

Reply
0 Kudos