shmobj: support large page

Change-Id: I104c1b8551b87f5cbfedb13262e77c00c38e9643
This commit is contained in:
Yoshihisa Morizumi
2021-01-28 10:38:41 +09:00
committed by Masamichi Takagi
parent d2db639853
commit 47aec70f5f
32 changed files with 2219 additions and 75 deletions

View File

@@ -2083,7 +2083,8 @@ straight_out:
}
p2align = pgshift - PAGE_SHIFT;
}
else if ((((flags & MAP_PRIVATE) && (flags & MAP_ANONYMOUS))
else if ((((flags & (MAP_PRIVATE | MAP_SHARED))
&& (flags & MAP_ANONYMOUS))
|| (vrf0 & VR_XPMEM))
&& !proc->thp_disable) {
pgshift = 0; /* transparent huge page */
@@ -2337,7 +2338,7 @@ straight_out:
memset(&ads, 0, sizeof(ads));
ads.shm_segsz = len;
ads.shm_perm.mode = SHM_DEST;
ads.init_pgshift = PAGE_SHIFT;
ads.init_pgshift = PAGE_SHIFT + p2align;
error = shmobj_create(&ads, &memobj);
if (error) {
ekprintf("do_mmap:shmobj_create failed. %d\n", error);