src/share/vm/ci/ciMetadata.cpp

Tue, 18 Jun 2013 12:31:07 -0700

author
johnc
date
Tue, 18 Jun 2013 12:31:07 -0700
changeset 5277
01522ca68fc7
parent 4037
da91efe96a93
child 6680
78bbf4d43a14
permissions
-rw-r--r--

8015237: Parallelize string table scanning during strong root processing
Summary: Parallelize the scanning of the intern string table by having each GC worker claim a given number of buckets. Changes were also reviewed by Per Liden <per.liden@oracle.com>.
Reviewed-by: tschatzl, stefank, twisti

coleenp@4037 1 /*
coleenp@4037 2 * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
coleenp@4037 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
coleenp@4037 4 *
coleenp@4037 5 * This code is free software; you can redistribute it and/or modify it
coleenp@4037 6 * under the terms of the GNU General Public License version 2 only, as
coleenp@4037 7 * published by the Free Software Foundation.
coleenp@4037 8 *
coleenp@4037 9 * This code is distributed in the hope that it will be useful, but WITHOUT
coleenp@4037 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
coleenp@4037 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
coleenp@4037 12 * version 2 for more details (a copy is included in the LICENSE file that
coleenp@4037 13 * accompanied this code).
coleenp@4037 14 *
coleenp@4037 15 * You should have received a copy of the GNU General Public License version
coleenp@4037 16 * 2 along with this work; if not, write to the Free Software Foundation,
coleenp@4037 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
coleenp@4037 18 *
coleenp@4037 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
coleenp@4037 20 * or visit www.oracle.com if you need additional information or have any
coleenp@4037 21 * questions.
coleenp@4037 22 *
coleenp@4037 23 */
coleenp@4037 24
coleenp@4037 25 #include "precompiled.hpp"
coleenp@4037 26 #include "ci/ciObject.hpp"
coleenp@4037 27 #include "ci/ciUtilities.hpp"
coleenp@4037 28 #include "gc_interface/collectedHeap.inline.hpp"
coleenp@4037 29 #include "oops/oop.inline2.hpp"
coleenp@4037 30
coleenp@4037 31 // ------------------------------------------------------------------
coleenp@4037 32 // ciMetadata::print
coleenp@4037 33 //
coleenp@4037 34 // Print debugging output about this ciMetadata.
coleenp@4037 35 //
coleenp@4037 36 // Implementation note: dispatch to the virtual print_impl behavior
coleenp@4037 37 // for this ciObject.
coleenp@4037 38 void ciMetadata::print(outputStream* st) {
coleenp@4037 39 st->print("<%s", type_string());
coleenp@4037 40 GUARDED_VM_ENTRY(print_impl(st);)
coleenp@4037 41 st->print(" ident=%d address=0x%x>", ident(), (address)this);
coleenp@4037 42 }
coleenp@4037 43
coleenp@4037 44
coleenp@4037 45 // ------------------------------------------------------------------
coleenp@4037 46 // ciMetadata::print_oop
coleenp@4037 47 //
coleenp@4037 48 // Print debugging output about the metadata this ciMetadata represents.
coleenp@4037 49 void ciMetadata::print_metadata(outputStream* st) {
coleenp@4037 50 if (!is_loaded()) {
coleenp@4037 51 st->print_cr("UNLOADED");
coleenp@4037 52 } else {
coleenp@4037 53 GUARDED_VM_ENTRY(_metadata->print_on(st);)
coleenp@4037 54 }
coleenp@4037 55 }

mercurial