comparison src/os/solaris/vm/os_solaris.cpp @ 8739:ca9580859cf4

8004697: SIGSEGV on Solaris sparc with -XX:+UseNUMA Summary: Don't scan pages outside the given range. Reviewed-by: jwilhelm, jmasa
author stefank
date Mon, 11 Mar 2013 02:24:01 -0700
parents 5cd2fac2ae70
children 15401203db6b
comparison
equal deleted inserted replaced
8738:1c88b99a2b01 8739:ca9580859cf4
2943 size_t page_size = MAX2((size_t)os::vm_page_size(), page_expected->size); 2943 size_t page_size = MAX2((size_t)os::vm_page_size(), page_expected->size);
2944 uint64_t p = (uint64_t)start; 2944 uint64_t p = (uint64_t)start;
2945 while (p < (uint64_t)end) { 2945 while (p < (uint64_t)end) {
2946 addrs[0] = p; 2946 addrs[0] = p;
2947 size_t addrs_count = 1; 2947 size_t addrs_count = 1;
2948 while (addrs_count < MAX_MEMINFO_CNT && addrs[addrs_count - 1] < (uint64_t)end) { 2948 while (addrs_count < MAX_MEMINFO_CNT && addrs[addrs_count - 1] + page_size < (uint64_t)end) {
2949 addrs[addrs_count] = addrs[addrs_count - 1] + page_size; 2949 addrs[addrs_count] = addrs[addrs_count - 1] + page_size;
2950 addrs_count++; 2950 addrs_count++;
2951 } 2951 }
2952 2952
2953 if (os::Solaris::meminfo(addrs, addrs_count, info_types, types, outdata, validity) < 0) { 2953 if (os::Solaris::meminfo(addrs, addrs_count, info_types, types, outdata, validity) < 0) {