Mercurial > hg > truffle
comparison src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp @ 1705:2d160770d2e5
6814437: G1: remove the _new_refs array
Summary: The per-worker _new_refs array is used to hold references that point into the collection set. It is populated during RSet updating and subsequently processed. In the event of an evacuation failure it processed again to recreate the RSets of regions in the collection set. Remove the per-worker _new_refs array by processing the references directly. Use a DirtyCardQueue to hold the cards containing the references so that the RSets of regions in the collection set can be recreated when handling an evacuation failure.
Reviewed-by: iveresov, jmasa, tonyp
author | johnc |
---|---|
date | Mon, 02 Aug 2010 12:51:43 -0700 |
parents | c18cbe5936b8 |
children | f95d63e2154a |
comparison
equal
deleted
inserted
replaced
1704:63f4675ac87d | 1705:2d160770d2e5 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 2001, 2010, 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. |
182 // returns NULL. If it causes an eviction, returns the evicted pointer. | 182 // returns NULL. If it causes an eviction, returns the evicted pointer. |
183 // Otherwise, its a cache hit, and returns NULL. | 183 // Otherwise, its a cache hit, and returns NULL. |
184 jbyte* cache_insert(jbyte* card_ptr, bool* defer); | 184 jbyte* cache_insert(jbyte* card_ptr, bool* defer); |
185 | 185 |
186 // Process the cached entries. | 186 // Process the cached entries. |
187 void clean_up_cache(int worker_i, G1RemSet* g1rs); | 187 void clean_up_cache(int worker_i, G1RemSet* g1rs, DirtyCardQueue* into_cset_dcq); |
188 | 188 |
189 // Set up for parallel processing of the cards in the hot cache | 189 // Set up for parallel processing of the cards in the hot cache |
190 void clear_hot_cache_claimed_index() { | 190 void clear_hot_cache_claimed_index() { |
191 _hot_cache_par_claimed_idx = 0; | 191 _hot_cache_par_claimed_idx = 0; |
192 } | 192 } |