RFR: 8068451: Kitchensink fails with assert(_size >= sz) failed: Negative size
George Triantafillou
george.triantafillou at oracle.com
Tue Feb 10 00:04:47 UTC 2015
Hi Coleen,
Looks good.
The patch shows white space diffs in nmtDCmd.cpp, which will appear in
the webrev using the "-b" option:
--- old/src/share/vm/services/nmtDCmd.cpp 2015-02-09 11:39:11.493013000 -0500
+++ new/src/share/vm/services/nmtDCmd.cpp 2015-02-09 11:39:11.098774000 -0500
@@ -137,8 +137,8 @@
}
} else if (_detail_diff.value()) {
if (!check_detail_tracking_level(output())) {
- return;
- }
+ return;
+ }
MemBaseline& baseline = MemTracker::get_baseline();
if (baseline.baseline_type() == MemBaseline::Detail_baselined) {
report_diff(false, scale_unit);
-George
On 2/9/2015 6:47 PM, Lois Foltan wrote:
> Hi Coleen,
>
> Looks good. I couldn't view the diffs in nmtDCmd.cpp though.
>
> Thanks,
> Lois
>
> On 2/9/2015 12:38 PM, Coleen Phillimore wrote:
>> Summary: Need ThreadCritical lock around chunk pool cleaning and
>> copying for snapshot
>>
>> This change restores the TC lock around the code that frees chunks
>> from the chunk pool. NMT1 needed ThreadCritical lock to track
>> malloc'ed memory, but NMT2 doesn't. This lock is also used to
>> protect the code that copies the running snapshot into a saved
>> snapshot. After the latter snapshot is created, NMT reporting
>> adjusts the malloc'ed memory for chunks because this memory is
>> already reported as the various arenas, so we don't want to
>> double-count it.
>>
>> Tested Kitchensink with NMT for three days with code to sleep during
>> the snapshot copy. This code reproduced the assertion 18x in about 8
>> hrs. (Took out the sleep). Also, fixed some whitespace and typos in
>> the execution path of the bug. Also ran NMT tests. Can't add a
>> test, it's noreg-hard.
>>
>> open webrev at http://cr.openjdk.java.net/~coleenp/8068451/
>> bug link https://bugs.openjdk.java.net/browse/JDK-8068451
>>
>> thanks,
>> Coleen
>>
>>
>>
>
More information about the hotspot-runtime-dev
mailing list