Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_implementation/g1/concurrentMark.hpp @ 7450:d275c3dc73e6
8004816: G1: Kitchensink failures after marking stack changes
Summary: Reset the marking state, including the mark stack overflow flag, in the event of a marking stack overflow during serial reference processing.
Reviewed-by: jmasa
author | johnc |
---|---|
date | Thu, 03 Jan 2013 16:28:22 -0800 |
parents | 442f942757c0 |
children | 256d3f43c177 |
comparison
equal
deleted
inserted
replaced
7449:37f7535e5f18 | 7450:d275c3dc73e6 |
---|---|
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. |
476 void swapMarkBitMaps(); | 476 void swapMarkBitMaps(); |
477 | 477 |
478 // It resets the global marking data structures, as well as the | 478 // It resets the global marking data structures, as well as the |
479 // task local ones; should be called during initial mark. | 479 // task local ones; should be called during initial mark. |
480 void reset(); | 480 void reset(); |
481 // It resets all the marking data structures. | 481 |
482 void clear_marking_state(bool clear_overflow = true); | 482 // Resets all the marking data structures. Called when we have to restart |
483 // marking or when marking completes (via set_non_marking_state below). | |
484 void reset_marking_state(bool clear_overflow = true); | |
485 | |
486 // We do this after we're done with marking so that the marking data | |
487 // structures are initialised to a sensible and predictable state. | |
488 void set_non_marking_state(); | |
483 | 489 |
484 // It should be called to indicate which phase we're in (concurrent | 490 // It should be called to indicate which phase we're in (concurrent |
485 // mark or remark) and how many threads are currently active. | 491 // mark or remark) and how many threads are currently active. |
486 void set_phase(uint active_tasks, bool concurrent); | 492 void set_phase(uint active_tasks, bool concurrent); |
487 // We do this after we're done with marking so that the marking data | |
488 // structures are initialised to a sensible and predictable state. | |
489 void set_non_marking_state(); | |
490 | 493 |
491 // prints all gathered CM-related statistics | 494 // prints all gathered CM-related statistics |
492 void print_stats(); | 495 void print_stats(); |
493 | 496 |
494 bool cleanup_list_is_empty() { | 497 bool cleanup_list_is_empty() { |