I'm trying to use ESXi 5.5 for hosting our development systems. For one special purpose, I need a Windows 7 x64 guest with 8GB RAM.
In our development scenario, we need to emulate the memory map of a physical system as close as possible but within ESXi, the guest operating systems seems to create a 1024kb big memory region just above 3.2GB RAM (0xBFF00000 - 0xC0000000) if I dedicate more than 3.2GB RAM to that machine.
That's problem for us because we use a memory mapping driver which tries to reserve a chunk of memory within the 2nd available memory region (which is the amount of memory above 3.2GB on bare metal installations).
Is there anything I can do to avoid that this region gets created?
I've already tried different versions of virtual hardware (6 to 😎 but without any luck...
Thanks for any help!
Did you try to reserve all VM's memory?
Hi blackcopy, and welcome to the VMware Communities!
You can use the pciHole.start option to adjust the start of the memory hole, measured in megabytes from address 0x00000000. The default is
pciHole.start = 3072
which corresponds to 0xC0000000. I don't recall how high you can set that value before the VM will have difficulty booting.
thanks for this parameter. Indeed, it changes the location of this hole. I'm wondering if there's any possibility to completely avoid the "existence" of this memory region (as it is on my baremetal machines)...
Which physical machine are you comparing against? Is there really *no* physical memory hole below 4 GBytes on that machine?
There is no way to avoid the existence of a memory hole just below 4 GBytes in a VMware virtual machine.
well, every "physical" system on my site shows the same behaviour/picture if I take a look with RAMMap, there are three regions: 0-640kb, 640kb-3720MB (roughly) and the remaining memory above this. Only within the VMware guest, there is this additional 1MB region above the 2nd one which seems to irritate my memory mapping driver.
Maybe the physical machine's BIOS is able to map the PCI hole differently than VMware does?
Ah, sorry, I misread your first post. Can you please post a dump or screen shot of the guest-visible memory map from RAMMap? Are you using EFI or BIOS firmware for that virtual machine?
Yes, of course, screen shots would show it a little bit better 😉
Here is the situation of a physical machine (HP xw8200 workstation, 8GB RAM, Win7 x64):
And that's the screen shot of the VMware guest (8GB RAM, pciHole.start set to 1300 for testing purposes, Win7 x64):
My problem isn't the existence of a memory hole - it exists on the physical machine as well. But somehow, Windows defines this small 1024kb region.