8262235: Remove unnecessary logic in hugetlbfs_sanity_check()

Reviewed-by: iwalulya, tschatzl
This commit is contained in:
Stefan Johansson 2021-03-24 20:28:04 +00:00
parent 1a13c9ef83
commit 623f0b6bc6

View file

@ -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) {