blackcopy
Contributor
Contributor

ESXi 5.5: Memory Hole at 3.2GB (Win7x64 guest)

Hi!

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!

Tags (3)
0 Kudos
8 Replies
DavoudTeimouri
Virtuoso
Virtuoso

Did you try to reserve all VM's memory?

-------------------------------------------------------------------------------------
Davoud Teimouri - https://www.teimouri.net - Twitter: @davoud_teimouri Facebook: https://www.facebook.com/teimouri.net/
0 Kudos
blackcopy
Contributor
Contributor

Yes, unfortunately this doesn't change anything as well as uninstalling the VMware Tools. I'm using Sysinternals' RAMMap application to check the memory regions.

0 Kudos
dariusd
Leadership
Leadership

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.

Cheers,

--

Darius

blackcopy
Contributor
Contributor

Hi Darius,

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)...

Regards,

chris

0 Kudos
dariusd
Leadership
Leadership

Hi Chris,

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.

Thanks!

--

Darius

0 Kudos
blackcopy
Contributor
Contributor

Hi Darius,

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?

0 Kudos
dariusd
Leadership
Leadership

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?

Thanks,

--

Darius

0 Kudos
blackcopy
Contributor
Contributor

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):

counter.png

And that's the screen shot of the VMware guest (8GB RAM, pciHole.start set to 1300 for testing purposes, Win7 x64):

vmware.png

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.

0 Kudos