Request for reviews (M): 7059037: Use BIS for zeroing on T4

Vladimir Kozlov vladimir.kozlov at
Thu Aug 25 16:51:56 PDT 2011


Ramki Ramakrishna wrote:
> Hi Vladimir --
> On 8/24/2011 5:52 PM, Vladimir Kozlov wrote:
>> 7059037: Use BIS for zeroing on T4
> ...
>> Zap new object in CollectedHeap::allocate_from_tlab_slow() instead of 
>> zeroing it
>> since it will be cleaned later in init_obj().

TLAB::allocate() zaps new objects so I think allocate_from_tlab_slow() should 
also zap new object (and I copied code from ThreadLocalAllocBuffer::allocate()) 
instead of cleaning it since it will be cleaned later in init_obj().

>> Fixed call sites of check_for_bad_heap_word_value() where klass is not
>> initialized to avoid the verification failure.

% /java/re/jdk/7/latest/binaries/solaris-i586/fastdebug/bin/java 
-XX:+CheckMemoryInitialization -Xcomp t
VM option '+CheckMemoryInitialization'
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/collectedHeap.cpp:98
# A fatal error has been detected by the Java Runtime Environment:
#  Internal Error 
pid=27663, tid=2
#  assert((*(intptr_t*) (addr + slot)) != ((intptr_t) badHeapWordVal)) failed: 
Found badHeapWordValue in post-allocation check
# JRE version: 7.0-b147
# Java VM: Java HotSpot(TM) Server VM (21.0-b17-fastdebug compiled mode 
solaris-x86 )


> Can you describe why these two changes were necessary? There was already 
> support
> for skipping headers for concurrent GC's when zapping and verifying. Did 
> something
> change that caused this to be changed.
> I haven't looked at the rest of the files, but a high level description 
> of the need to
> make this change would allow me to review the changes that necessitated 
> this,
> and whether it could not be done more easily otherwise (using the existing
> framework of skipping a preamble of words in the object).
> -- ramki

More information about the hotspot-compiler-dev mailing list