<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    This looks good.&nbsp;&nbsp; Luckily doesn't impact the serviceability agent.<br>
    <br>
    The field _alloc_count could be removed completely because from what
    we can tell, nobody uses the allocation profiler.&nbsp;&nbsp; There's a bug
    filed for that.<br>
    <br>
    Coleen<br>
    <br>
    <div class="moz-cite-prefix">On 01/23/2013 03:09 PM, Ioi Lam wrote:<br>
    </div>
    <blockquote cite="mid:51004373.5070300@oracle.com" type="cite">
      <meta http-equiv="content-type" content="text/html;
        charset=ISO-8859-1">
      <tt>WebRev:</tt><tt><br>
      </tt>
      <div class="moz-forward-container"><tt> &nbsp;&nbsp;&nbsp;&nbsp; </tt><tt><a
            moz-do-not-send="true" class="moz-txt-link-freetext"
            href="http://cr.openjdk.java.net/%7Eiklam/8006280/reorder_metadata_001/">http://cr.openjdk.java.net/~iklam/8006280/reorder_metadata_001/</a></tt><tt><br>
        </tt> <tt><br>
        </tt>
        <pre>Bug: Need to reorder metadata structures to reduce size (64-bit)
   &nbsp;<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><a moz-do-not-send="true" href="https://jbs.oracle.com/bugs/browse/JDK-8006280">https://jbs.oracle.com/bugs/browse/JDK-8006280</a>

Sponsor: Jiangli

Summary:

On x64:

  + Klass: 8 byte reduction
  + InstanceKlass: 8 byte reduction (in addition to reduction in Klass)
  + Method: 8 byte reduction

  This is verified by using the "pahole" script (as described in bug report)

On ARM-EABI:

  I also manually verify that this change for ARM-EABI (which requires
  8-byte alignment for jlong but not pointers):

  + Klass: 8 byte reduction
  + InstanceKlass: no change (apart from Klass reduction) -- no jlong fields
  + Method: no change -- no jlong fields

  Before: (linux_armvfp_2.6-productEmb/jre/lib/arm/minimal/libjvm.diz

    (gdb) p &amp;((Klass*)0)-&gt;_alloc_count   
    $1 = (juint *) 0x58
    (gdb) p &amp;((Klass*)0)-&gt;_last_biased_lock_bulk_revocation_time
    $2 = (jlong *) 0x60
    (gdb) p sizeof(Klass)
    $3 = 120

    The "hole" was at address 0x5c

  After:

    (gdb) p &amp;((Klass*)0)-&gt;_access_flags
    $7 = (AccessFlags *) 0x54
    (gdb) p &amp;((Klass*)0)-&gt;_last_biased_lock_bulk_revocation_time
    $8 = (jlong *) 0x58
    (gdb) p sizeof(Klass)
    $6 = 112

Tests run:

+ JPRT -- (hotspot only, on hotspotwest queue, including embedded builds)

+ UTE/vm.quick.testlist, 100% passed


Thanks
Ioi
</pre>
        <tt><br>
        </tt><br>
      </div>
      <tt><br>
      </tt> </blockquote>
    <br>
  </body>
</html>