TO RESET: hugefileobj: pre-allocate on mmap
Set this change to "TO RESET" because one of the Fujitsu tests fails. Change-Id: Iddc30e8452b3d39da4975079d0c6a035e4f3dbde
This commit is contained in:
@ -281,6 +281,34 @@ int hugefileobj_create(struct memobj *memobj, size_t len, off_t off,
|
||||
virt_addr,
|
||||
nr_pages,
|
||||
obj->pgsize);
|
||||
|
||||
#ifdef ENABLE_FUGAKU_HACKS
|
||||
{
|
||||
int pgind;
|
||||
int npages;
|
||||
|
||||
for (pgind = 0; pgind < obj->nr_pages; ++pgind) {
|
||||
if (obj->pages[pgind]) {
|
||||
continue;
|
||||
}
|
||||
|
||||
npages = obj->pgsize >> PAGE_SHIFT;
|
||||
obj->pages[pgind] = ihk_mc_alloc_aligned_pages_user(npages,
|
||||
obj->pgshift - PTL1_SHIFT,
|
||||
IHK_MC_AP_NOWAIT | IHK_MC_AP_USER, 0);
|
||||
if (!obj->pages[pgind]) {
|
||||
kprintf("%s: error: could not allocate page for off: %lu"
|
||||
", page size: %lu\n", __func__, off, obj->pgsize);
|
||||
continue;
|
||||
}
|
||||
|
||||
memset(obj->pages[pgind], 0, obj->pgsize);
|
||||
dkprintf("%s: obj: 0x%lx, pre-allocated page for off: %lu"
|
||||
" (ind: %d), page size: %lu\n",
|
||||
__func__, obj, off, pgind, obj->pgsize);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
obj->memobj.size = len;
|
||||
|
||||
Reference in New Issue
Block a user