97 static size_t setup_large_page_size();
98
99 static bool setup_large_page_type(size_t page_size);
100 static bool transparent_huge_pages_sanity_check(bool warn, size_t pages_size);
101 static bool hugetlbfs_sanity_check(bool warn, size_t page_size);
102
103 static char* reserve_memory_special_shm(size_t bytes, size_t alignment, char* req_addr, bool exec);
104 static char* reserve_memory_special_huge_tlbfs(size_t bytes, size_t alignment, char* req_addr, bool exec);
105 static char* reserve_memory_special_huge_tlbfs_only(size_t bytes, char* req_addr, bool exec);
106 static char* reserve_memory_special_huge_tlbfs_mixed(size_t bytes, size_t alignment, char* req_addr, bool exec);
107
108 static bool release_memory_special_impl(char* base, size_t bytes);
109 static bool release_memory_special_shm(char* base, size_t bytes);
110 static bool release_memory_special_huge_tlbfs(char* base, size_t bytes);
111
112 static void print_full_memory_info(outputStream* st);
113 static void print_container_info(outputStream* st);
114 static void print_distro_info(outputStream* st);
115 static void print_libversion_info(outputStream* st);
116 static void print_proc_sys_info(outputStream* st);
117
118 public:
119 static bool _stack_is_executable;
120 static void *dlopen_helper(const char *name, char *ebuf, int ebuflen);
121 static void *dll_load_in_vmthread(const char *name, char *ebuf, int ebuflen);
122
123 static void init_thread_fpu_state();
124 static int get_fpu_control_word();
125 static void set_fpu_control_word(int fpu_control);
126 static pthread_t main_thread(void) { return _main_thread; }
127 // returns kernel thread id (similar to LWP id on Solaris), which can be
128 // used to access /proc
129 static pid_t gettid();
130 static void set_createThread_lock(Mutex* lk) { _createThread_lock = lk; }
131 static Mutex* createThread_lock(void) { return _createThread_lock; }
132 static void hotspot_sigmask(Thread* thread);
133
134 static address initial_thread_stack_bottom(void) { return _initial_thread_stack_bottom; }
135 static uintptr_t initial_thread_stack_size(void) { return _initial_thread_stack_size; }
136
|
97 static size_t setup_large_page_size();
98
99 static bool setup_large_page_type(size_t page_size);
100 static bool transparent_huge_pages_sanity_check(bool warn, size_t pages_size);
101 static bool hugetlbfs_sanity_check(bool warn, size_t page_size);
102
103 static char* reserve_memory_special_shm(size_t bytes, size_t alignment, char* req_addr, bool exec);
104 static char* reserve_memory_special_huge_tlbfs(size_t bytes, size_t alignment, char* req_addr, bool exec);
105 static char* reserve_memory_special_huge_tlbfs_only(size_t bytes, char* req_addr, bool exec);
106 static char* reserve_memory_special_huge_tlbfs_mixed(size_t bytes, size_t alignment, char* req_addr, bool exec);
107
108 static bool release_memory_special_impl(char* base, size_t bytes);
109 static bool release_memory_special_shm(char* base, size_t bytes);
110 static bool release_memory_special_huge_tlbfs(char* base, size_t bytes);
111
112 static void print_full_memory_info(outputStream* st);
113 static void print_container_info(outputStream* st);
114 static void print_distro_info(outputStream* st);
115 static void print_libversion_info(outputStream* st);
116 static void print_proc_sys_info(outputStream* st);
117 static void print_ld_preload_file(outputStream* st);
118
119 public:
120 static bool _stack_is_executable;
121 static void *dlopen_helper(const char *name, char *ebuf, int ebuflen);
122 static void *dll_load_in_vmthread(const char *name, char *ebuf, int ebuflen);
123
124 static void init_thread_fpu_state();
125 static int get_fpu_control_word();
126 static void set_fpu_control_word(int fpu_control);
127 static pthread_t main_thread(void) { return _main_thread; }
128 // returns kernel thread id (similar to LWP id on Solaris), which can be
129 // used to access /proc
130 static pid_t gettid();
131 static void set_createThread_lock(Mutex* lk) { _createThread_lock = lk; }
132 static Mutex* createThread_lock(void) { return _createThread_lock; }
133 static void hotspot_sigmask(Thread* thread);
134
135 static address initial_thread_stack_bottom(void) { return _initial_thread_stack_bottom; }
136 static uintptr_t initial_thread_stack_size(void) { return _initial_thread_stack_size; }
137
|