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 |