The scope of the GCTraceTime timer is too large for string table processing for the parallel scavange GC, expanding beyond it.
I.e. in psScavenge.cpp:
469 GCTraceTime tm("StringTable", false, false, &_gc_timer);
470 // Unlink any dead interned Strings and process the remaining live ones.
471 PSScavengeRootsClosure root_closure(promotion_manager);
472 StringTable::unlink_or_oops_do(&_is_alive_closure, &root_closure);
The fix is to put braces around this section.
Reported with this fix suggestion by J. Manson on the hotspot-dev list (http://mail.openjdk.java.net/pipermail/hotspot-dev/2013-October/011420.html)
ILW: L (user reported timings are wrong), M (only used with event tracing/JFR enabled), H (no workaround) -> P5