Path: blob/master/runtime/gc_realtime/RealtimeSweepTask.cpp
5985 views
/*******************************************************************************1* Copyright (c) 1991, 2020 IBM Corp. and others2*3* This program and the accompanying materials are made available under4* the terms of the Eclipse Public License 2.0 which accompanies this5* distribution and is available at https://www.eclipse.org/legal/epl-2.0/6* or the Apache License, Version 2.0 which accompanies this distribution and7* is available at https://www.apache.org/licenses/LICENSE-2.0.8*9* This Source Code may also be made available under the following10* Secondary Licenses when the conditions for such availability set11* forth in the Eclipse Public License, v. 2.0 are satisfied: GNU12* General Public License, version 2 with the GNU Classpath13* Exception [1] and GNU General Public License, version 2 with the14* OpenJDK Assembly Exception [2].15*16* [1] https://www.gnu.org/software/classpath/license.html17* [2] http://openjdk.java.net/legal/assembly-exception.html18*19* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception20*******************************************************************************/212223#include "ut_j9mm.h"2425#include "EnvironmentRealtime.hpp"26#include "GCExtensionsBase.hpp"27#include "GlobalGCStats.hpp"28#include "RealtimeSweepTask.hpp"29#include "SweepSchemeRealtime.hpp"3031void32MM_RealtimeSweepTask::run(MM_EnvironmentBase *envBase)33{34MM_EnvironmentRealtime *env = MM_EnvironmentRealtime::getEnvironment(envBase->getOmrVMThread());35_sweepScheme->sweep(env);36}3738void39MM_RealtimeSweepTask::setup(MM_EnvironmentBase *envBase)40{41MM_EnvironmentRealtime *env = MM_EnvironmentRealtime::getEnvironment(envBase->getOmrVMThread());4243env->_sweepStats.clear();4445/* record that this thread is participating in this cycle */46env->_sweepStats._gcCount = env->getExtensions()->globalGCStats.gcCount;47}4849void50MM_RealtimeSweepTask::cleanup(MM_EnvironmentBase *envBase)51{52MM_EnvironmentRealtime *env = MM_EnvironmentRealtime::getEnvironment(envBase->getOmrVMThread());53OMRPORT_ACCESS_FROM_ENVIRONMENT(env);5455MM_GlobalGCStats *finalGCStats = &env->getExtensions()->globalGCStats;56finalGCStats->sweepStats.merge(&env->_sweepStats);5758Trc_MM_RealtimeSweepTask_parallelStats(59env->getLanguageVMThread(),60(U_32)env->getWorkerID(),61(U_32)omrtime_hires_delta(0, env->_sweepStats.idleTime, OMRPORT_TIME_DELTA_IN_MILLISECONDS),62env->_sweepStats.sweepChunksProcessed,63(U_32)omrtime_hires_delta(0, env->_sweepStats.mergeTime, OMRPORT_TIME_DELTA_IN_MILLISECONDS));64}656667