blob: 067e0d0407d5ac02d03ff159266b21fd9bf91b64 [file] [log] [blame]
#!/bin/bash
#
# Copyright (C) 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Enable lock contention logging.
if [[ "x$ART_DEFAULT_GC_TYPE" = xGSS ]]; then
# NonMovingAlloc operations fail an assertion with the Generational
# Semi-Space (GSS) collector (see b/72738921); disable them for now
# by explicitly assigning frequencies to operations when the GSS
# collector is used.
#
# Note: The trick to use command substitution to have comments within
# a multi-line command is from https://stackoverflow.com/a/12797512.
${RUN} --runtime-option -Xlockprofthreshold:10 "${@}" Main \
-oom:0.005 `# 1/200` \
-sigquit:0.095 `# 19/200` \
-alloc:0.225 `# 45/200` \
-largealloc:0.05 `# 10/200` \
-nonmovingalloc:0.0 `# 0/200` \
-stacktrace:0.1 `# 20/200` \
-exit:0.225 `# 45/200` \
-sleep:0.125 `# 25/200` \
-timedwait:0.05 `# 10/200` \
-wait:0.075 `# 15/200` \
-queuedwait:0.05 `# 10/200`
else
${RUN} --runtime-option -Xlockprofthreshold:10 "${@}"
fi
return_status1=$?
# Run locks-only mode with stack-dump lock profiling. Reduce the number of total operations from
# the default 1000 to 100.
${RUN} --runtime-option -Xlockprofthreshold:10 --runtime-option -Xstackdumplockprofthreshold:20 \
"${@}" Main --locks-only -o 100
return_status2=$?
# Make sure we don't silently ignore an early failure.
(exit $return_status1) && (exit $return_status2)