18 * |
18 * |
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
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 |
20 * or visit www.oracle.com if you need additional information or have any |
21 * questions. |
21 * questions. |
22 * |
22 * |
23 */ |
|
24 |
|
25 /* |
|
26 * This file has been modified by Loongson Technology in 2015. These |
|
27 * modifications are Copyright (c) 2015 Loongson Technology, and are made |
|
28 * available on the same license terms set forth above. |
|
29 */ |
23 */ |
30 |
24 |
31 #ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_MUTABLENUMASPACE_HPP |
25 #ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_MUTABLENUMASPACE_HPP |
32 #define SHARE_VM_GC_IMPLEMENTATION_SHARED_MUTABLENUMASPACE_HPP |
26 #define SHARE_VM_GC_IMPLEMENTATION_SHARED_MUTABLENUMASPACE_HPP |
33 |
27 |
67 * load where multiple processes are competing for the memory. |
61 * load where multiple processes are competing for the memory. |
68 */ |
62 */ |
69 |
63 |
70 class MutableNUMASpace : public MutableSpace { |
64 class MutableNUMASpace : public MutableSpace { |
71 friend class VMStructs; |
65 friend class VMStructs; |
72 friend class CardTableExtension; |
|
73 friend class OldToYoungRootsTask; |
|
74 friend class OldToYoungRootsTask_OldNUMA; |
|
75 friend class PSScavenge; |
|
76 friend class PSOldGen; |
|
77 friend class PSYoungGen; |
|
78 friend class PSPromotionManager; |
|
79 friend class PSOldPromotionLAB; |
|
80 |
66 |
81 class LGRPSpace : public CHeapObj<mtGC> { |
67 class LGRPSpace : public CHeapObj<mtGC> { |
82 int _lgrp_id; |
68 int _lgrp_id; |
83 MutableSpace* _space; |
69 MutableSpace* _space; |
84 MemRegion _invalid_region; |
70 MemRegion _invalid_region; |
235 virtual size_t unsafe_max_tlab_alloc(Thread* thr) const; |
221 virtual size_t unsafe_max_tlab_alloc(Thread* thr) const; |
236 |
222 |
237 // Allocation (return NULL if full) |
223 // Allocation (return NULL if full) |
238 virtual HeapWord* allocate(size_t word_size); |
224 virtual HeapWord* allocate(size_t word_size); |
239 virtual HeapWord* cas_allocate(size_t word_size); |
225 virtual HeapWord* cas_allocate(size_t word_size); |
240 |
|
241 // Allocation for Old NUMA (return NULL if full) |
|
242 virtual HeapWord* cas_allocate_oldnuma(size_t word_size, int node); |
|
243 |
226 |
244 // Debugging |
227 // Debugging |
245 virtual void print_on(outputStream* st) const; |
228 virtual void print_on(outputStream* st) const; |
246 virtual void print_short_on(outputStream* st) const; |
229 virtual void print_short_on(outputStream* st) const; |
247 virtual void verify(); |
230 virtual void verify(); |