< prev index next >

src/hotspot/os/linux/os_linux.hpp

Print this page




  39   static bool libjsig_is_loaded;        // libjsig that interposes sigaction(),
  40                                         // __sigaction(), signal() is loaded
  41   static struct sigaction *(*get_signal_action)(int);
  42 
  43   static void check_signal_handler(int sig);
  44 
  45   static int (*_pthread_getcpuclockid)(pthread_t, clockid_t *);
  46   static int (*_pthread_setname_np)(pthread_t, const char*);
  47 
  48   static address   _initial_thread_stack_bottom;
  49   static uintptr_t _initial_thread_stack_size;
  50 
  51   static const char *_glibc_version;
  52   static const char *_libpthread_version;
  53 
  54   static bool _supports_fast_thread_cpu_time;
  55 
  56   static GrowableArray<int>* _cpu_to_node;
  57   static GrowableArray<int>* _nindex_to_node;
  58 


  59  protected:
  60 
  61   static julong _physical_memory;
  62   static pthread_t _main_thread;
  63   static int _page_size;
  64 
  65   static julong available_memory();
  66   static julong physical_memory() { return _physical_memory; }
  67   static void set_physical_memory(julong phys_mem) { _physical_memory = phys_mem; }
  68   static int active_processor_count();
  69 
  70   static void initialize_system_info();
  71 
  72   static int commit_memory_impl(char* addr, size_t bytes, bool exec);
  73   static int commit_memory_impl(char* addr, size_t bytes,
  74                                 size_t alignment_hint, bool exec);
  75 
  76   static void set_glibc_version(const char *s)      { _glibc_version = s; }
  77   static void set_libpthread_version(const char *s) { _libpthread_version = s; }
  78 
  79   static void rebuild_cpu_to_node_map();
  80   static void rebuild_nindex_to_node_map();
  81   static GrowableArray<int>* cpu_to_node()    { return _cpu_to_node; }
  82   static GrowableArray<int>* nindex_to_node()  { return _nindex_to_node; }
  83 
  84   static size_t find_large_page_size();


  85   static size_t setup_large_page_size();
  86 
  87   static bool setup_large_page_type(size_t page_size);
  88   static bool transparent_huge_pages_sanity_check(bool warn, size_t pages_size);
  89   static bool hugetlbfs_sanity_check(bool warn, size_t page_size);
  90 
  91   static char* reserve_memory_special_shm(size_t bytes, size_t alignment, char* req_addr, bool exec);
  92   static char* reserve_memory_special_huge_tlbfs(size_t bytes, size_t alignment, char* req_addr, bool exec);
  93   static char* reserve_memory_special_huge_tlbfs_only(size_t bytes, char* req_addr, bool exec);
  94   static char* reserve_memory_special_huge_tlbfs_mixed(size_t bytes, size_t alignment, char* req_addr, bool exec);
  95 
  96   static bool release_memory_special_impl(char* base, size_t bytes);
  97   static bool release_memory_special_shm(char* base, size_t bytes);
  98   static bool release_memory_special_huge_tlbfs(char* base, size_t bytes);
  99 
 100   static void print_full_memory_info(outputStream* st);
 101   static void print_container_info(outputStream* st);
 102   static void print_steal_info(outputStream* st);
 103   static void print_distro_info(outputStream* st);
 104   static void print_libversion_info(outputStream* st);




  39   static bool libjsig_is_loaded;        // libjsig that interposes sigaction(),
  40                                         // __sigaction(), signal() is loaded
  41   static struct sigaction *(*get_signal_action)(int);
  42 
  43   static void check_signal_handler(int sig);
  44 
  45   static int (*_pthread_getcpuclockid)(pthread_t, clockid_t *);
  46   static int (*_pthread_setname_np)(pthread_t, const char*);
  47 
  48   static address   _initial_thread_stack_bottom;
  49   static uintptr_t _initial_thread_stack_size;
  50 
  51   static const char *_glibc_version;
  52   static const char *_libpthread_version;
  53 
  54   static bool _supports_fast_thread_cpu_time;
  55 
  56   static GrowableArray<int>* _cpu_to_node;
  57   static GrowableArray<int>* _nindex_to_node;
  58 
  59   static size_t _default_large_page_size;
  60 
  61  protected:
  62 
  63   static julong _physical_memory;
  64   static pthread_t _main_thread;
  65   static int _page_size;
  66 
  67   static julong available_memory();
  68   static julong physical_memory() { return _physical_memory; }
  69   static void set_physical_memory(julong phys_mem) { _physical_memory = phys_mem; }
  70   static int active_processor_count();
  71 
  72   static void initialize_system_info();
  73 
  74   static int commit_memory_impl(char* addr, size_t bytes, bool exec);
  75   static int commit_memory_impl(char* addr, size_t bytes,
  76                                 size_t alignment_hint, bool exec);
  77 
  78   static void set_glibc_version(const char *s)      { _glibc_version = s; }
  79   static void set_libpthread_version(const char *s) { _libpthread_version = s; }
  80 
  81   static void rebuild_cpu_to_node_map();
  82   static void rebuild_nindex_to_node_map();
  83   static GrowableArray<int>* cpu_to_node()    { return _cpu_to_node; }
  84   static GrowableArray<int>* nindex_to_node()  { return _nindex_to_node; }
  85 
  86   static size_t default_large_page_size();
  87   static size_t find_default_large_page_size();
  88   static bool is_valid_large_page_size(size_t page_size);
  89   static size_t setup_large_page_size();
  90 
  91   static bool setup_large_page_type(size_t page_size);
  92   static bool transparent_huge_pages_sanity_check(bool warn, size_t pages_size);
  93   static bool hugetlbfs_sanity_check(bool warn, size_t page_size);
  94 
  95   static char* reserve_memory_special_shm(size_t bytes, size_t alignment, char* req_addr, bool exec);
  96   static char* reserve_memory_special_huge_tlbfs(size_t bytes, size_t alignment, char* req_addr, bool exec);
  97   static char* reserve_memory_special_huge_tlbfs_only(size_t bytes, char* req_addr, bool exec);
  98   static char* reserve_memory_special_huge_tlbfs_mixed(size_t bytes, size_t alignment, char* req_addr, bool exec);
  99 
 100   static bool release_memory_special_impl(char* base, size_t bytes);
 101   static bool release_memory_special_shm(char* base, size_t bytes);
 102   static bool release_memory_special_huge_tlbfs(char* base, size_t bytes);
 103 
 104   static void print_full_memory_info(outputStream* st);
 105   static void print_container_info(outputStream* st);
 106   static void print_steal_info(outputStream* st);
 107   static void print_distro_info(outputStream* st);
 108   static void print_libversion_info(outputStream* st);


< prev index next >