< prev index next >

src/hotspot/share/gc/g1/g1ConcurrentRefineThread.cpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 21,30 **** --- 21,31 ---- * questions. * */ #include "precompiled.hpp" + #include "gc/g1/g1BarrierSet.hpp" #include "gc/g1/g1ConcurrentRefine.hpp" #include "gc/g1/g1ConcurrentRefineThread.hpp" #include "gc/shared/suspendibleThreadSet.hpp" #include "logging/log.hpp" #include "memory/resourceArea.hpp"
*** 61,91 **** _monitor->wait(Mutex::_no_safepoint_check_flag); } } bool G1ConcurrentRefineThread::is_active() { ! DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); return is_primary() ? dcqs.process_completed_buffers() : _active; } void G1ConcurrentRefineThread::activate() { MutexLockerEx x(_monitor, Mutex::_no_safepoint_check_flag); if (!is_primary()) { set_active(true); } else { ! DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); dcqs.set_process_completed(true); } _monitor->notify(); } void G1ConcurrentRefineThread::deactivate() { MutexLockerEx x(_monitor, Mutex::_no_safepoint_check_flag); if (!is_primary()) { set_active(false); } else { ! DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); dcqs.set_process_completed(false); } } void G1ConcurrentRefineThread::run_service() { --- 62,92 ---- _monitor->wait(Mutex::_no_safepoint_check_flag); } } bool G1ConcurrentRefineThread::is_active() { ! DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); return is_primary() ? dcqs.process_completed_buffers() : _active; } void G1ConcurrentRefineThread::activate() { MutexLockerEx x(_monitor, Mutex::_no_safepoint_check_flag); if (!is_primary()) { set_active(true); } else { ! DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); dcqs.set_process_completed(true); } _monitor->notify(); } void G1ConcurrentRefineThread::deactivate() { MutexLockerEx x(_monitor, Mutex::_no_safepoint_check_flag); if (!is_primary()) { set_active(false); } else { ! DirtyCardQueueSet& dcqs = G1BarrierSet::dirty_card_queue_set(); dcqs.set_process_completed(false); } } void G1ConcurrentRefineThread::run_service() {
*** 99,109 **** } size_t buffers_processed = 0; log_debug(gc, refine)("Activated worker %d, on threshold: " SIZE_FORMAT ", current: " SIZE_FORMAT, _worker_id, _cr->activation_threshold(_worker_id), ! JavaThread::dirty_card_queue_set().completed_buffers_num()); { SuspendibleThreadSetJoiner sts_join; while (!should_terminate()) { --- 100,110 ---- } size_t buffers_processed = 0; log_debug(gc, refine)("Activated worker %d, on threshold: " SIZE_FORMAT ", current: " SIZE_FORMAT, _worker_id, _cr->activation_threshold(_worker_id), ! G1BarrierSet::dirty_card_queue_set().completed_buffers_num()); { SuspendibleThreadSetJoiner sts_join; while (!should_terminate()) {
*** 121,131 **** deactivate(); log_debug(gc, refine)("Deactivated worker %d, off threshold: " SIZE_FORMAT ", current: " SIZE_FORMAT ", processed: " SIZE_FORMAT, _worker_id, _cr->deactivation_threshold(_worker_id), ! JavaThread::dirty_card_queue_set().completed_buffers_num(), buffers_processed); if (os::supports_vtime()) { _vtime_accum = (os::elapsedVTime() - _vtime_start); } else { --- 122,132 ---- deactivate(); log_debug(gc, refine)("Deactivated worker %d, off threshold: " SIZE_FORMAT ", current: " SIZE_FORMAT ", processed: " SIZE_FORMAT, _worker_id, _cr->deactivation_threshold(_worker_id), ! G1BarrierSet::dirty_card_queue_set().completed_buffers_num(), buffers_processed); if (os::supports_vtime()) { _vtime_accum = (os::elapsedVTime() - _vtime_start); } else {
< prev index next >