Skip to content
Permalink
Browse files
Automatic merge of jdk:master into master
  • Loading branch information
duke committed Mar 24, 2021
2 parents 9ff3d35 + 623f0b6 commit 1ae0d757a07d6df27c1de563d14907e0d7c8f3d4
Showing 1 changed file with 5 additions and 23 deletions.
@@ -3493,39 +3493,21 @@ int os::Linux::hugetlbfs_page_size_flag(size_t page_size) {
}

bool os::Linux::hugetlbfs_sanity_check(bool warn, size_t page_size) {
bool result = false;

// Include the page size flag to ensure we sanity check the correct page size.
int flags = MAP_ANONYMOUS | MAP_PRIVATE | MAP_HUGETLB | hugetlbfs_page_size_flag(page_size);
void *p = mmap(NULL, page_size, PROT_READ|PROT_WRITE, flags, -1, 0);

if (p != MAP_FAILED) {
// We don't know if this really is a huge page or not.
FILE *fp = fopen("/proc/self/maps", "r");
if (fp) {
while (!feof(fp)) {
char chars[257];
long x = 0;
if (fgets(chars, sizeof(chars), fp)) {
if (sscanf(chars, "%lx-%*x", &x) == 1
&& x == (long)p) {
if (strstr (chars, "hugepage")) {
result = true;
break;
}
}
}
}
fclose(fp);
}
// Mapping succeeded, sanity check passed.
munmap(p, page_size);
return true;
}

if (warn && !result) {
warning("HugeTLBFS is not supported by the operating system.");
if (warn) {
warning("HugeTLBFS is not configured or not supported by the operating system.");
}

return result;
return false;
}

bool os::Linux::shm_hugetlbfs_sanity_check(bool warn, size_t page_size) {

0 comments on commit 1ae0d75

Please sign in to comment.