Mercurial > hg > truffle
comparison src/os/solaris/vm/perfMemory_solaris.cpp @ 10969:a837fa3d3f86
8013057: assert(_needs_gc || SafepointSynchronize::is_at_safepoint()) failed: only read at safepoint
Summary: Detect mmap() commit failures in Linux and Solaris os::commit_memory() impls and call vm_exit_out_of_memory(). Add os::commit_memory_or_exit(). Also tidy up some NMT accounting and some mmap() return value checking.
Reviewed-by: zgu, stefank, dholmes, dsamersoff
author | dcubed |
---|---|
date | Thu, 13 Jun 2013 11:16:38 -0700 |
parents | 4b7cf00ccb08 |
children | e95fc50106cf |
comparison
equal
deleted
inserted
replaced
10405:f2110083203d | 10969:a837fa3d3f86 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
60 if (mapAddress == NULL) { | 60 if (mapAddress == NULL) { |
61 return NULL; | 61 return NULL; |
62 } | 62 } |
63 | 63 |
64 // commit memory | 64 // commit memory |
65 if (!os::commit_memory(mapAddress, size)) { | 65 if (!os::commit_memory(mapAddress, size, !ExecMem)) { |
66 if (PrintMiscellaneous && Verbose) { | 66 if (PrintMiscellaneous && Verbose) { |
67 warning("Could not commit PerfData memory\n"); | 67 warning("Could not commit PerfData memory\n"); |
68 } | 68 } |
69 os::release_memory(mapAddress, size); | 69 os::release_memory(mapAddress, size); |
70 return NULL; | 70 return NULL; |