You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A omrvmem_reserve_memory_ex() call with a startAddress and endAddress, using the default page size, getMemoryInRangeForDefaultPages() is called, OMRPORT_VMEM_ALLOC_QUICK is not set. The OS returns an address which is smaller than the startAddress. The algorithm increments the startAddress continuously, looking for an allocation that satisfies the requirements. This doesn't fail until the updated startAddress gets close enough to the endAddress that the request can no longer be satisfied. The search can take quite a long time when using 64-bit memory addresses.
A possible improvement is to assume when the returned address is smaller than the startAddress, the request will never be satisfied, and fail early.
The text was updated successfully, but these errors were encountered:
In an interim version of #2743 I had modified the search order to attempt allocations at addresses more widely separated first and gradually filling in the gaps. It did help when OMRPORT_VMEM_ALLOC_QUICK failed; the problem was that OMRPORT_VMEM_ALLOC_QUICK should not have failed in the scenarios we see and so improvements to the last-resort scan (that we won't get to) become less important if #2743 is accepted.
Derived from eclipse-openj9/openj9#270
A omrvmem_reserve_memory_ex() call with a startAddress and endAddress, using the default page size, getMemoryInRangeForDefaultPages() is called, OMRPORT_VMEM_ALLOC_QUICK is not set. The OS returns an address which is smaller than the startAddress. The algorithm increments the startAddress continuously, looking for an allocation that satisfies the requirements. This doesn't fail until the updated startAddress gets close enough to the endAddress that the request can no longer be satisfied. The search can take quite a long time when using 64-bit memory addresses.
A possible improvement is to assume when the returned address is smaller than the startAddress, the request will never be satisfied, and fail early.
The text was updated successfully, but these errors were encountered: