hotspot/src/share/vm/oops/markOop.inline.hpp
// Should this header be preserved during GC?
inline bool markOopDesc::must_be_preserved(oop obj_containing_mark) const {
  {- -------------------------------------------
  (1) biased locking を使用しているかどうかに応じて (つまり, UseBiasedLocking オプションの値に応じて)
      * biased locking を使っていない場合: 
        mark にロック状態の情報が埋め込まれているか, あるいはハッシュ値が埋め込まれていれば, 保存する必要がある.
      * biased locking を使っている場合: 
        markOopDesc::must_be_preserved_with_bias() で判断.
      ---------------------------------------- -}
      if (!UseBiasedLocking)
        return (!is_unlocked() || !has_no_hash());
      return must_be_preserved_with_bias(obj_containing_mark);
    }
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.