1 /*
2 * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
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
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1ERGOVERBOSE_HPP
26 #define SHARE_VM_GC_IMPLEMENTATION_G1_G1ERGOVERBOSE_HPP
27
28 #include "memory/allocation.hpp"
29 #include "utilities/debug.hpp"
30
31 // The log of G1's heuristic decisions comprises of a series of
32 // records which have a similar format in order to maintain
33 // consistency across records and ultimately easier parsing of the
34 // output, if we ever choose to do that. Each record consists of:
35 // * A time stamp to be able to easily correlate each record with
36 // other events.
37 // * A unique string to allow us to easily identify such records.
38 // * The name of the heuristic the record corresponds to.
39 // * An action string which describes the action that G1 did or is
40 // about to do.
41 // * An optional reason string which describes the reason for the
42 // action.
43 // * An optional number of name/value pairs which contributed to the
44 // decision to take the action described in the record.
45 //
46 // Each record is associated with a "tag" which is the combination of
182
183 #define ergo_verbose2(_tag_, _action_, _extra_format_, \
184 _arg0_, _arg1_) \
185 ergo_verbose3(_tag_, _action_, _extra_format_ "%s", \
186 _arg0_, _arg1_, "")
187
188 #define ergo_verbose1(_tag_, _action_, _extra_format_, \
189 _arg0_) \
190 ergo_verbose2(_tag_, _action_, _extra_format_ "%s", \
191 _arg0_, "")
192
193
194 #define ergo_verbose0(_tag_, _action_, _extra_format_) \
195 ergo_verbose1(_tag_, _action_, _extra_format_ "%s", \
196 "")
197
198 #define ergo_verbose(_tag_, _action_) \
199 ergo_verbose0(_tag_, _action_, "")
200
201
202 #endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1ERGOVERBOSE_HPP
|
1 /*
2 * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
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
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_GC_G1_G1ERGOVERBOSE_HPP
26 #define SHARE_VM_GC_G1_G1ERGOVERBOSE_HPP
27
28 #include "memory/allocation.hpp"
29 #include "utilities/debug.hpp"
30
31 // The log of G1's heuristic decisions comprises of a series of
32 // records which have a similar format in order to maintain
33 // consistency across records and ultimately easier parsing of the
34 // output, if we ever choose to do that. Each record consists of:
35 // * A time stamp to be able to easily correlate each record with
36 // other events.
37 // * A unique string to allow us to easily identify such records.
38 // * The name of the heuristic the record corresponds to.
39 // * An action string which describes the action that G1 did or is
40 // about to do.
41 // * An optional reason string which describes the reason for the
42 // action.
43 // * An optional number of name/value pairs which contributed to the
44 // decision to take the action described in the record.
45 //
46 // Each record is associated with a "tag" which is the combination of
182
183 #define ergo_verbose2(_tag_, _action_, _extra_format_, \
184 _arg0_, _arg1_) \
185 ergo_verbose3(_tag_, _action_, _extra_format_ "%s", \
186 _arg0_, _arg1_, "")
187
188 #define ergo_verbose1(_tag_, _action_, _extra_format_, \
189 _arg0_) \
190 ergo_verbose2(_tag_, _action_, _extra_format_ "%s", \
191 _arg0_, "")
192
193
194 #define ergo_verbose0(_tag_, _action_, _extra_format_) \
195 ergo_verbose1(_tag_, _action_, _extra_format_ "%s", \
196 "")
197
198 #define ergo_verbose(_tag_, _action_) \
199 ergo_verbose0(_tag_, _action_, "")
200
201
202 #endif // SHARE_VM_GC_G1_G1ERGOVERBOSE_HPP
|