annotate src/share/vm/runtime/atomic.inline.hpp @ 10246:194f52aa2f23

7176479: G1: JVM crashes on T5-8 system with 1.5 TB heap Summary: Refactor G1's hot card cache and card counts table into their own files. Simplify the card counts table, including removing the encoding of the card index in each entry. The card counts table now has a 1:1 correspondence with the cards spanned by heap. Space for the card counts table is reserved from virtual memory (rather than C heap) during JVM startup and is committed/expanded when the heap is expanded. Changes were also reviewed-by Vitaly Davidovich. Reviewed-by: tschatzl, jmasa
author johnc
date Thu, 09 May 2013 11:16:39 -0700
parents cd3d6a6b95d9
children bdd155477289
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7199
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
1 /*
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
2 * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
4 *
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
7 * published by the Free Software Foundation.
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
8 *
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
13 * accompanied this code).
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
14 *
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
18 *
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
21 * questions.
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
22 *
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
23 */
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
24
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
25 #ifndef SHARE_VM_RUNTIME_ATOMIC_INLINE_HPP
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
26 #define SHARE_VM_RUNTIME_ATOMIC_INLINE_HPP
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
27
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
28 #include "runtime/atomic.hpp"
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
29
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
30 // Linux
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
31 #ifdef TARGET_OS_ARCH_linux_x86
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
32 # include "atomic_linux_x86.inline.hpp"
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
33 #endif
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
34 #ifdef TARGET_OS_ARCH_linux_sparc
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
35 # include "atomic_linux_sparc.inline.hpp"
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
36 #endif
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
37 #ifdef TARGET_OS_ARCH_linux_zero
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
38 # include "atomic_linux_zero.inline.hpp"
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
39 #endif
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
40 #ifdef TARGET_OS_ARCH_linux_arm
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
41 # include "atomic_linux_arm.inline.hpp"
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
42 #endif
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
43 #ifdef TARGET_OS_ARCH_linux_ppc
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
44 # include "atomic_linux_ppc.inline.hpp"
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
45 #endif
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
46
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
47 // Solaris
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
48 #ifdef TARGET_OS_ARCH_solaris_x86
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
49 # include "atomic_solaris_x86.inline.hpp"
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
50 #endif
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
51 #ifdef TARGET_OS_ARCH_solaris_sparc
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
52 # include "atomic_solaris_sparc.inline.hpp"
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
53 #endif
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
54
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
55 // Windows
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
56 #ifdef TARGET_OS_ARCH_windows_x86
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
57 # include "atomic_windows_x86.inline.hpp"
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
58 #endif
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
59
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
60 // BSD
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
61 #ifdef TARGET_OS_ARCH_bsd_x86
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
62 # include "atomic_bsd_x86.inline.hpp"
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
63 #endif
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
64 #ifdef TARGET_OS_ARCH_bsd_zero
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
65 # include "atomic_bsd_zero.inline.hpp"
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
66 #endif
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
67
cd3d6a6b95d9 8003240: x86: move MacroAssembler into separate file
twisti
parents:
diff changeset
68 #endif // SHARE_VM_RUNTIME_ATOMIC_INLINE_HPP