< prev index next >
src/hotspot/os_cpu/linux_x86/gc/z/zBackingFile_linux_x86.cpp
Print this page
@@ -44,14 +44,10 @@
#define ZFILESYSTEM_HUGETLBFS "hugetlbfs"
// Sysfs file for transparent huge page on tmpfs
#define ZFILENAME_SHMEM_ENABLED "/sys/kernel/mm/transparent_hugepage/shmem_enabled"
-// Default mount points
-#define ZMOUNTPOINT_TMPFS "/dev/shm"
-#define ZMOUNTPOINT_HUGETLBFS "/hugepages"
-
// Java heap filename
#define ZFILENAME_HEAP "java_heap"
// Support for building on older Linux systems
#ifndef __NR_memfd_create
@@ -76,10 +72,24 @@
#endif
#ifndef HUGETLBFS_MAGIC
#define HUGETLBFS_MAGIC 0x958458f6
#endif
+// Preferred tmpfs mount points, ordered by priority
+static const char* z_preferred_tmpfs_mountpoints[] = {
+ "/dev/shm",
+ "/run/shm",
+ NULL
+};
+
+// Preferred tmpfs mount points, ordered by priority
+static const char* z_preferred_hugetlbfs_mountpoints[] = {
+ "/dev/hugepages",
+ "/hugepages",
+ NULL
+};
+
static int z_memfd_create(const char *name, unsigned int flags) {
return syscall(__NR_memfd_create, name, flags);
}
bool ZBackingFile::_hugetlbfs_mmap_retry = true;
@@ -164,14 +174,14 @@
return fd;
}
int ZBackingFile::create_file_fd(const char* name) const {
const char* const filesystem = ZLargePages::is_explicit() ? ZFILESYSTEM_HUGETLBFS : ZFILESYSTEM_TMPFS;
- const char* const mountpoint = ZLargePages::is_explicit() ? ZMOUNTPOINT_HUGETLBFS : ZMOUNTPOINT_TMPFS;
+ const char** const mountpoints = ZLargePages::is_explicit() ? z_preferred_hugetlbfs_mountpoints : z_preferred_tmpfs_mountpoints;
// Find mountpoint
- ZBackingPath path(filesystem, mountpoint);
+ ZBackingPath path(filesystem, mountpoints);
if (path.get() == NULL) {
log_error(gc, init)("Use -XX:ZPath to specify the path to a %s filesystem", filesystem);
return -1;
}
< prev index next >