xpmem: Support large page attachment

Change-Id: I4d672eee1c905160ece204d278f0afd9b6d7dc01
Refs: #1259
This commit is contained in:
Masamichi Takagi
2019-04-04 02:29:34 +00:00
committed by Ken Sato
parent 569dc33a9c
commit a8696d811d
35 changed files with 2394 additions and 104 deletions

View File

@@ -15,6 +15,7 @@
#include <limits.h>
#include <uio.h>
#include <syscall.h>
#include <bitops.h>
#include <rusage_private.h>
#include <ihk/debug.h>
@@ -2049,7 +2050,7 @@ SYSCALL_DECLARE(mmap)
goto out;
}
addr = do_mmap(addr, len, prot, flags, fd, off0);
addr = do_mmap(addr, len, prot, flags, fd, off0, 0, NULL);
error = 0;
out:

View File

@@ -155,7 +155,7 @@ int arch_map_vdso(struct process_vm *vm)
flag = VR_REMOTE | VR_PROT_READ;
flag |= VRFLAG_PROT_TO_MAXPROT(flag);
ret = add_process_memory_range(vm, start, end, vdso.vvar_phys, flag,
NULL, 0, PAGE_SHIFT, &range);
NULL, 0, PAGE_SHIFT, NULL, &range);
if (ret != 0){
dkprintf("ERROR: adding memory range for tod_data\n");
goto exit;
@@ -167,7 +167,7 @@ int arch_map_vdso(struct process_vm *vm)
flag = VR_REMOTE | VR_PROT_READ | VR_PROT_EXEC;
flag |= VRFLAG_PROT_TO_MAXPROT(flag);
ret = add_process_memory_range(vm, start, end, vdso.vdso_physlist[0], flag,
NULL, 0, PAGE_SHIFT, &range);
NULL, 0, PAGE_SHIFT, NULL, &range);
if (ret != 0) {
dkprintf("ERROR: adding memory range for vdso_text\n");

View File

@@ -31,6 +31,7 @@
#include <page.h>
#include <limits.h>
#include <syscall.h>
#include <bitops.h>
#include <rusage_private.h>
#include <ihk/debug.h>
@@ -1791,7 +1792,7 @@ recheck:
goto out;
}
addr = do_mmap(addr, len, prot, flags, fd, off0);
addr = do_mmap(addr, len, prot, flags, fd, off0, 0, NULL);
error = 0;
out:
@@ -2120,7 +2121,7 @@ int arch_map_vdso(struct process_vm *vm)
vrflags |= VR_PROT_READ | VR_PROT_EXEC;
vrflags |= VRFLAG_PROT_TO_MAXPROT(vrflags);
error = add_process_memory_range(vm, (intptr_t)s, (intptr_t)e,
NOPHYS, vrflags, NULL, 0, PAGE_SHIFT, &range);
NOPHYS, vrflags, NULL, 0, PAGE_SHIFT, NULL, &range);
if (error) {
ekprintf("ERROR: adding memory range for vdso. %d\n", error);
goto out;
@@ -2152,7 +2153,8 @@ int arch_map_vdso(struct process_vm *vm)
vrflags |= VR_PROT_READ;
vrflags |= VRFLAG_PROT_TO_MAXPROT(vrflags);
error = add_process_memory_range(vm, (intptr_t)s, (intptr_t)e,
NOPHYS, vrflags, NULL, 0, PAGE_SHIFT, &range);
NOPHYS, vrflags, NULL, 0,
PAGE_SHIFT, NULL, &range);
if (error) {
ekprintf("ERROR: adding memory range for vvar. %d\n", error);
goto out;