[rvm-research] spare one bit from the object header

王晨曦 <[email protected]> Tue, 29 Sep 2015 19:36:31 +0800
Newsgroups gmane.comp.java.jikes.rvm.devel
Message-ID <[email protected]>
Hi, every one.

	I want to spare one bit as a flag to mark some particular object from the thin lock bits used in the object header.
In the production configuration ,the ADDRESS_BASED_HASHING is true.  
so the object header looks like:
 *      TTTT TTTT TTTT TTTT TTTT TOHH AAAA AAAA
the bit marked by ‘O’ is the bit  I want to spare.

 I modified the thin lock definitions:
  /** How many bits are allocated to a thin lock? */
  public static final int NUM_THIN_LOCK_BITS = ADDRESS_BASED_HASHING ? 21 : 19;

  /** How many bits to shift to get the thin lock? */
  public static final int THIN_LOCK_SHIFT = ADDRESS_BASED_HASHING ? 11 : 13;


But ,In GenNurseryTraceLocal.java traceObject() method.
I find that ,the spared bit ‘O’  can be set by something I don’t know.

the check code in the traceObject():
     
        Word objWordVal = VM.objectModel.readAvailableBitsWord(object);
        Log.write("object header word value:");
        Log.writeln(objWordVal);
        
      
and the the print info is :
  1871 object header word value:0x6e00859f  //  ….   0101  1001  1111

  1876 object header word value:0x6e009dfb  //  ….   1101   1111  1011
 
we can see that  the spared bit may be set by something.
So,my question is who set this spared bit ?  
I checked that the thin lock count bits, it is reduced 1 bit, and I think the thin lock will not use this bit. 

Any response is helpful, thank you.
------------------------------------------------------------------------------
_______________________________________________
Jikesrvm-researchers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers