hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp
changeset 41070 496463b4e206
parent 40384 43db0d4b6e14
child 41314 f815c3be1f2e
equal deleted inserted replaced
40931:d4d2a4a0e023 41070:496463b4e206
   836 
   836 
   837 ////////////////////////////////////////////////////////////////////////////////
   837 ////////////////////////////////////////////////////////////////////////////////
   838 // thread stack
   838 // thread stack
   839 
   839 
   840 #ifdef AMD64
   840 #ifdef AMD64
   841 size_t os::Bsd::min_stack_allowed  = 64 * K;
   841 size_t os::Posix::_compiler_thread_min_stack_allowed = 64 * K;
   842 #else
   842 size_t os::Posix::_java_thread_min_stack_allowed = 64 * K;
   843 size_t os::Bsd::min_stack_allowed  =  (48 DEBUG_ONLY(+4))*K;
   843 size_t os::Posix::_vm_internal_thread_min_stack_allowed = 64 * K;
       
   844 #else
       
   845 size_t os::Posix::_compiler_thread_min_stack_allowed = (48 DEBUG_ONLY(+ 4)) * K;
       
   846 size_t os::Posix::_java_thread_min_stack_allowed = (48 DEBUG_ONLY(+ 4)) * K;
       
   847 size_t os::Posix::_vm_internal_thread_min_stack_allowed = (48 DEBUG_ONLY(+ 4)) * K;
   844 
   848 
   845 #ifdef __GNUC__
   849 #ifdef __GNUC__
   846 #define GET_GS() ({int gs; __asm__ volatile("movw %%gs, %w0":"=q"(gs)); gs&0xffff;})
   850 #define GET_GS() ({int gs; __asm__ volatile("movw %%gs, %w0":"=q"(gs)); gs&0xffff;})
   847 #endif
   851 #endif
   848 
   852 
   849 #endif // AMD64
   853 #endif // AMD64
   850 
   854 
   851 // return default stack size for thr_type
   855 // return default stack size for thr_type
   852 size_t os::Bsd::default_stack_size(os::ThreadType thr_type) {
   856 size_t os::Posix::default_stack_size(os::ThreadType thr_type) {
   853   // default stack size (compiler thread needs larger stack)
   857   // default stack size (compiler thread needs larger stack)
   854 #ifdef AMD64
   858 #ifdef AMD64
   855   size_t s = (thr_type == os::compiler_thread ? 4 * M : 1 * M);
   859   size_t s = (thr_type == os::compiler_thread ? 4 * M : 1 * M);
   856 #else
   860 #else
   857   size_t s = (thr_type == os::compiler_thread ? 2 * M : 512 * K);
   861   size_t s = (thr_type == os::compiler_thread ? 2 * M : 512 * K);
   858 #endif // AMD64
   862 #endif // AMD64
   859   return s;
   863   return s;
   860 }
   864 }
   861 
   865 
   862 size_t os::Bsd::default_guard_size(os::ThreadType thr_type) {
       
   863   // Creating guard page is very expensive. Java thread has HotSpot
       
   864   // guard page, only enable glibc guard page for non-Java threads.
       
   865   return (thr_type == java_thread ? 0 : page_size());
       
   866 }
       
   867 
   866 
   868 // Java thread:
   867 // Java thread:
   869 //
   868 //
   870 //   Low memory addresses
   869 //   Low memory addresses
   871 //    +------------------------+
   870 //    +------------------------+