Skip to content
Permalink
Browse files
8262235: Remove unnecessary logic in hugetlbfs_sanity_check()
Reviewed-by: iwalulya, tschatzl
  • Loading branch information
kstefanj committed Mar 24, 2021
1 parent 1a13c9e commit 623f0b6bc61bbfb13fbe43e3beaa51481aacb398
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 623f0b6

Please sign in to comment.