When performing vMotion of a virtual machine from an ESXi 7.0.x host to an ESXi 8.0.x host in a resource pool with low free memory, the following error may occur:
Module 'VMMon' power on failed
At the same time on the source ESXi host, /storage/log/vmkernel.log contains logs indicating that an Out of Memory error occurred during the creation of the following p2mCache:
2025-09-03T01:54:25.844Z Wa(180) vmkwarning: cpu25:6546501)WARNING: Heap: 3892: Could not allocate 921600 bytes for dynamic heap worldGroup. Request returned Admission check failed for memory resource
2025-09-03T01:54:25.844Z Wa(180) vmkwarning: cpu25:6546501)WARNING: Heap: 4105: Heap_Align(worldGroup, 919552/919552 bytes, 8 align) failed. caller: 0x420014bcff9d
2025-09-03T01:54:25.844Z Wa(180) vmkwarning: cpu25:6546501)WARNING: P2MCache: vm #######: ####: failed to allocate memory for p2mHashLines
2025-09-03T01:54:25.845Z In(182) vmkernel: cpu25:6546501)VM: 688: Failed p2mCache creation: Out of memory
VMware vSphere ESXi 7.0
VMware vSphere ESXi 8.0
Because virtual machine memory overhead differs between ESXi 7.0 and ESXi 8.0, migrating to 8.0 requires additional memory reservation.
Even if there is sufficient free memory in the cluster, if the resource pool containing the virtual machine does not have enough free memory, reserving this memory will fail and the error will occur.
Setting the advanced option forces DRS to perform full divvying where in DRS scales down the excess reservation before sending the resource config spec to kernel.
Note : Enabling this setting may increase the load on the vCenter Server due to increased resource calculations when VM powering on and migration
For more about of the divvy, please refer "Vmotion of DRS initiated VM fails with "Module 'MonitorLoop' power on failed."