Add ULT for OSMemoryLinux

- ensure OSMemoryLinux::reserveCpuAddressRange() calls mmap()
  with -1 as fd param

Related-To: NEO-2877, NEO-3530

Change-Id: I2d5903291726b086af8b913f92b64e8c38c23462
Signed-off-by: Venevtsev, Igor <igor.venevtsev@intel.com>
This commit is contained in:
Venevtsev, Igor
2019-07-30 16:46:58 +02:00
committed by sys_ocldev
parent f0d3b47886
commit 8169347aa9
12 changed files with 145 additions and 23 deletions

View File

@@ -5,19 +5,28 @@
*
*/
#include "runtime/os_interface/os_memory.h"
#include <fcntl.h>
#include <sys/mman.h>
#include "runtime/os_interface/linux/os_memory_linux.h"
namespace NEO {
void *OSMemory::reserveCpuAddressRange(size_t sizeToReserve) {
return mmap(0, sizeToReserve, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE | MAP_HUGETLB, -1, 0);
std::unique_ptr<OSMemory> OSMemory::create() {
return std::make_unique<OSMemoryLinux>();
}
void OSMemory::releaseCpuAddressRange(void *reservedCpuAddressRange, size_t reservedSize) {
munmap(reservedCpuAddressRange, reservedSize);
void *OSMemoryLinux::reserveCpuAddressRange(size_t sizeToReserve) {
return mmapWrapper(0, sizeToReserve, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE | MAP_HUGETLB, -1, 0);
}
void OSMemoryLinux::releaseCpuAddressRange(void *reservedCpuAddressRange, size_t reservedSize) {
munmapWrapper(reservedCpuAddressRange, reservedSize);
}
void *OSMemoryLinux::mmapWrapper(void *addr, size_t size, int prot, int flags, int fd, off_t off) {
return mmap(addr, size, prot, flags, fd, off);
}
int OSMemoryLinux::munmapWrapper(void *addr, size_t size) {
return munmap(addr, size);
}
} // namespace NEO