hotspot/src/os/windows/vm/os_windows.cpp
changeset 6964 6e45ffa3bccf
parent 6962 d49132ce025b
child 7397 5b173b4ca846
equal deleted inserted replaced
6963:58adcb17d304 6964:6e45ffa3bccf
  3309   static void perfMemory_exit_helper() {
  3309   static void perfMemory_exit_helper() {
  3310     perfMemory_exit();
  3310     perfMemory_exit();
  3311   }
  3311   }
  3312 }
  3312 }
  3313 
  3313 
  3314 
       
  3315 // this is called _after_ the global arguments have been parsed
  3314 // this is called _after_ the global arguments have been parsed
  3316 jint os::init_2(void) {
  3315 jint os::init_2(void) {
  3317   // Allocate a single page and mark it as readable for safepoint polling
  3316   // Allocate a single page and mark it as readable for safepoint polling
  3318   address polling_page = (address)VirtualAlloc(NULL, os::vm_page_size(), MEM_RESERVE, PAGE_READONLY);
  3317   address polling_page = (address)VirtualAlloc(NULL, os::vm_page_size(), MEM_RESERVE, PAGE_READONLY);
  3319   guarantee( polling_page != NULL, "Reserve Failed for polling page");
  3318   guarantee( polling_page != NULL, "Reserve Failed for polling page");
  3386   size_t default_reserve_size = os::win32::default_stack_size();
  3385   size_t default_reserve_size = os::win32::default_stack_size();
  3387   size_t actual_reserve_size = stack_commit_size;
  3386   size_t actual_reserve_size = stack_commit_size;
  3388   if (stack_commit_size < default_reserve_size) {
  3387   if (stack_commit_size < default_reserve_size) {
  3389     // If stack_commit_size == 0, we want this too
  3388     // If stack_commit_size == 0, we want this too
  3390     actual_reserve_size = default_reserve_size;
  3389     actual_reserve_size = default_reserve_size;
       
  3390   }
       
  3391 
       
  3392   // Check minimum allowable stack size for thread creation and to initialize
       
  3393   // the java system classes, including StackOverflowError - depends on page
       
  3394   // size.  Add a page for compiler2 recursion in main thread.
       
  3395   // Add in 2*BytesPerWord times page size to account for VM stack during
       
  3396   // class initialization depending on 32 or 64 bit VM.
       
  3397   size_t min_stack_allowed =
       
  3398             (size_t)(StackYellowPages+StackRedPages+StackShadowPages+
       
  3399             2*BytesPerWord COMPILER2_PRESENT(+1)) * os::vm_page_size();
       
  3400   if (actual_reserve_size < min_stack_allowed) {
       
  3401     tty->print_cr("\nThe stack size specified is too small, "
       
  3402                   "Specify at least %dk",
       
  3403                   min_stack_allowed / K);
       
  3404     return JNI_ERR;
  3391   }
  3405   }
  3392 
  3406 
  3393   JavaThread::set_stack_size_at_create(stack_commit_size);
  3407   JavaThread::set_stack_size_at_create(stack_commit_size);
  3394 
  3408 
  3395   // Calculate theoretical max. size of Threads to guard gainst artifical
  3409   // Calculate theoretical max. size of Threads to guard gainst artifical