14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "logging/log.hpp"
27 #include "memory/metaspace/metaDebug.hpp"
28 #include "runtime/os.hpp"
29 #include "runtime/thread.hpp"
30 #include "utilities/debug.hpp"
31 #include "utilities/globalDefinitions.hpp"
32
33 namespace metaspace {
34 namespace internals {
35
36 int Metadebug::_allocation_fail_alot_count = 0;
37
38 void Metadebug::init_allocation_fail_alot_count() {
39 if (MetadataAllocationFailALot) {
40 _allocation_fail_alot_count =
41 1+(long)((double)MetadataAllocationFailALotInterval*os::random()/(max_jint+1.0));
42 }
43 }
44
45 #ifdef ASSERT
46 bool Metadebug::test_metadata_failure() {
47 if (MetadataAllocationFailALot &&
48 Threads::is_vm_complete()) {
49 if (_allocation_fail_alot_count > 0) {
50 _allocation_fail_alot_count--;
51 } else {
52 log_trace(gc, metaspace, freelist)("Metadata allocation failing for MetadataAllocationFailALot");
53 init_allocation_fail_alot_count();
54 return true;
55 }
56 }
57 return false;
58 }
59 #endif
60
61
62 } // namespace metaspace
63 } // namespace internals
64
65
66
|
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "logging/log.hpp"
27 #include "memory/metaspace/metaDebug.hpp"
28 #include "runtime/os.hpp"
29 #include "runtime/thread.hpp"
30 #include "utilities/debug.hpp"
31 #include "utilities/globalDefinitions.hpp"
32
33 namespace metaspace {
34
35 int Metadebug::_allocation_fail_alot_count = 0;
36
37 void Metadebug::init_allocation_fail_alot_count() {
38 if (MetadataAllocationFailALot) {
39 _allocation_fail_alot_count =
40 1+(long)((double)MetadataAllocationFailALotInterval*os::random()/(max_jint+1.0));
41 }
42 }
43
44 #ifdef ASSERT
45 bool Metadebug::test_metadata_failure() {
46 if (MetadataAllocationFailALot &&
47 Threads::is_vm_complete()) {
48 if (_allocation_fail_alot_count > 0) {
49 _allocation_fail_alot_count--;
50 } else {
51 log_trace(gc, metaspace, freelist)("Metadata allocation failing for MetadataAllocationFailALot");
52 init_allocation_fail_alot_count();
53 return true;
54 }
55 }
56 return false;
57 }
58 #endif
59
60
61 } // namespace metaspace
62
63
|