2469 size_t JavaThread::_stack_yellow_zone_size = 0; |
2469 size_t JavaThread::_stack_yellow_zone_size = 0; |
2470 size_t JavaThread::_stack_reserved_zone_size = 0; |
2470 size_t JavaThread::_stack_reserved_zone_size = 0; |
2471 size_t JavaThread::_stack_shadow_zone_size = 0; |
2471 size_t JavaThread::_stack_shadow_zone_size = 0; |
2472 |
2472 |
2473 void JavaThread::create_stack_guard_pages() { |
2473 void JavaThread::create_stack_guard_pages() { |
2474 if (!os::uses_stack_guard_pages() || _stack_guard_state != stack_guard_unused) { return; } |
2474 if (!os::uses_stack_guard_pages() || |
|
2475 _stack_guard_state != stack_guard_unused || |
|
2476 (DisablePrimordialThreadGuardPages && os::is_primordial_thread())) { |
|
2477 log_info(os, thread)("Stack guard page creation for thread " |
|
2478 UINTX_FORMAT " disabled", os::current_thread_id()); |
|
2479 return; |
|
2480 } |
2475 address low_addr = stack_end(); |
2481 address low_addr = stack_end(); |
2476 size_t len = stack_guard_zone_size(); |
2482 size_t len = stack_guard_zone_size(); |
2477 |
2483 |
2478 assert(is_aligned(low_addr, os::vm_page_size()), "Stack base should be the start of a page"); |
2484 assert(is_aligned(low_addr, os::vm_page_size()), "Stack base should be the start of a page"); |
2479 assert(is_aligned(len, os::vm_page_size()), "Stack size should be a multiple of page size"); |
2485 assert(is_aligned(len, os::vm_page_size()), "Stack size should be a multiple of page size"); |