src/share/vm/opto/runtime.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 8031320_8u Cdiff src/share/vm/opto/runtime.cpp

src/share/vm/opto/runtime.cpp

Print this page
rev 5968 : 8031320: Use Intel RTM instructions for locks
Summary: Use RTM for inflated locks and stack locks.
Reviewed-by: iveresov, twisti, roland, dcubed

*** 1297,1306 **** --- 1297,1314 ---- BiasedLockingCounters* blc = ((BiasedLockingNamedCounter*)c)->counters(); if (blc->nonzero()) { tty->print_cr("%s", c->name()); blc->print_on(tty); } + #if INCLUDE_RTM_OPT + } else if (c->tag() == NamedCounter::RTMLockingCounter) { + RTMLockingCounters* rlc = ((RTMLockingNamedCounter*)c)->counters(); + if (rlc->nonzero()) { + tty->print_cr("%s", c->name()); + rlc->print_on(tty); + } + #endif } c = c->next(); } if (total_lock_count > 0) { tty->print_cr("dynamic locks: %d", total_lock_count);
*** 1336,1353 **** --- 1344,1364 ---- // To print linenumbers instead of bci use: m->line_number_from_bci(bci) } NamedCounter* c; if (tag == NamedCounter::BiasedLockingCounter) { c = new BiasedLockingNamedCounter(strdup(st.as_string())); + } else if (tag == NamedCounter::RTMLockingCounter) { + c = new RTMLockingNamedCounter(strdup(st.as_string())); } else { c = new NamedCounter(strdup(st.as_string()), tag); } // atomically add the new counter to the head of the list. We only // add counters so this is safe. NamedCounter* head; do { + c->set_next(NULL); head = _named_counters; c->set_next(head); } while (Atomic::cmpxchg_ptr(c, &_named_counters, head) != head); return c; }
src/share/vm/opto/runtime.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File