< prev index next >

src/share/vm/runtime/os.cpp

Print this page
rev 8978 : imported patch remove_err_msg


1662 /* try to switch state from state "from" to state "to"
1663  * returns the state set after the method is complete
1664  */
1665 os::SuspendResume::State os::SuspendResume::switch_state(os::SuspendResume::State from,
1666                                                          os::SuspendResume::State to)
1667 {
1668   os::SuspendResume::State result =
1669     (os::SuspendResume::State) Atomic::cmpxchg((jint) to, (jint *) &_state, (jint) from);
1670   if (result == from) {
1671     // success
1672     return to;
1673   }
1674   return result;
1675 }
1676 #endif
1677 
1678 /////////////// Unit tests ///////////////
1679 
1680 #ifndef PRODUCT
1681 
1682 #define assert_eq(a,b) assert(a == b, err_msg(SIZE_FORMAT " != " SIZE_FORMAT, a, b))
1683 
1684 class TestOS : AllStatic {
1685   static size_t small_page_size() {
1686     return os::vm_page_size();
1687   }
1688 
1689   static size_t large_page_size() {
1690     const size_t large_page_size_example = 4 * M;
1691     return os::page_size_for_region_aligned(large_page_size_example, 1);
1692   }
1693 
1694   static void test_page_size_for_region_aligned() {
1695     if (UseLargePages) {
1696       const size_t small_page = small_page_size();
1697       const size_t large_page = large_page_size();
1698 
1699       if (large_page > small_page) {
1700         size_t num_small_pages_in_large = large_page / small_page;
1701         size_t page = os::page_size_for_region_aligned(large_page, num_small_pages_in_large);
1702 




1662 /* try to switch state from state "from" to state "to"
1663  * returns the state set after the method is complete
1664  */
1665 os::SuspendResume::State os::SuspendResume::switch_state(os::SuspendResume::State from,
1666                                                          os::SuspendResume::State to)
1667 {
1668   os::SuspendResume::State result =
1669     (os::SuspendResume::State) Atomic::cmpxchg((jint) to, (jint *) &_state, (jint) from);
1670   if (result == from) {
1671     // success
1672     return to;
1673   }
1674   return result;
1675 }
1676 #endif
1677 
1678 /////////////// Unit tests ///////////////
1679 
1680 #ifndef PRODUCT
1681 
1682 #define assert_eq(a,b) assert(a == b, SIZE_FORMAT " != " SIZE_FORMAT, a, b)
1683 
1684 class TestOS : AllStatic {
1685   static size_t small_page_size() {
1686     return os::vm_page_size();
1687   }
1688 
1689   static size_t large_page_size() {
1690     const size_t large_page_size_example = 4 * M;
1691     return os::page_size_for_region_aligned(large_page_size_example, 1);
1692   }
1693 
1694   static void test_page_size_for_region_aligned() {
1695     if (UseLargePages) {
1696       const size_t small_page = small_page_size();
1697       const size_t large_page = large_page_size();
1698 
1699       if (large_page > small_page) {
1700         size_t num_small_pages_in_large = large_page / small_page;
1701         size_t page = os::page_size_for_region_aligned(large_page, num_small_pages_in_large);
1702 


< prev index next >