comparison src/share/vm/runtime/thread.hpp @ 1027:39b01ab7035a

6888898: CMS: ReduceInitialCardMarks unsafe in the presence of cms precleaning 6889757: G1: enable card mark elision for initializing writes from compiled code (ReduceInitialCardMarks) Summary: Defer the (compiler-elided) card-mark upon a slow-path allocation until after the store and before the next subsequent safepoint; G1 now answers yes to can_elide_tlab_write_barriers(). Reviewed-by: jcoomes, kvn, never
author ysr
date Fri, 16 Oct 2009 02:05:46 -0700
parents 46b819ba120b
children 547f81740344 e66fd840cb6b
comparison
equal deleted inserted replaced
1025:1ee412f7fec9 1027:39b01ab7035a
682 // code in i2c adapters and handle_wrong_method. 682 // code in i2c adapters and handle_wrong_method.
683 683
684 methodOop _callee_target; 684 methodOop _callee_target;
685 685
686 // Oop results of VM runtime calls 686 // Oop results of VM runtime calls
687 oop _vm_result; // Used to pass back an oop result into Java code, GC-preserved 687 oop _vm_result; // Used to pass back an oop result into Java code, GC-preserved
688 oop _vm_result_2; // Used to pass back an oop result into Java code, GC-preserved 688 oop _vm_result_2; // Used to pass back an oop result into Java code, GC-preserved
689
690 // See ReduceInitialCardMarks: this holds the precise space interval of
691 // the most recent slow path allocation for which compiled code has
692 // elided card-marks for performance along the fast-path.
693 MemRegion _deferred_card_mark;
689 694
690 MonitorChunk* _monitor_chunks; // Contains the off stack monitors 695 MonitorChunk* _monitor_chunks; // Contains the off stack monitors
691 // allocated during deoptimization 696 // allocated during deoptimization
692 // and by JNI_MonitorEnter/Exit 697 // and by JNI_MonitorEnter/Exit
693 698
1079 oop vm_result() const { return _vm_result; } 1084 oop vm_result() const { return _vm_result; }
1080 void set_vm_result (oop x) { _vm_result = x; } 1085 void set_vm_result (oop x) { _vm_result = x; }
1081 1086
1082 oop vm_result_2() const { return _vm_result_2; } 1087 oop vm_result_2() const { return _vm_result_2; }
1083 void set_vm_result_2 (oop x) { _vm_result_2 = x; } 1088 void set_vm_result_2 (oop x) { _vm_result_2 = x; }
1089
1090 MemRegion deferred_card_mark() const { return _deferred_card_mark; }
1091 void set_deferred_card_mark(MemRegion mr) { _deferred_card_mark = mr; }
1084 1092
1085 // Exception handling for compiled methods 1093 // Exception handling for compiled methods
1086 oop exception_oop() const { return _exception_oop; } 1094 oop exception_oop() const { return _exception_oop; }
1087 int exception_stack_size() const { return _exception_stack_size; } 1095 int exception_stack_size() const { return _exception_stack_size; }
1088 address exception_pc() const { return _exception_pc; } 1096 address exception_pc() const { return _exception_pc; }