Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8301716

GenShen: investigate replacement of object start array with logBOT




      This ticket covers the initial task of investigating if the use of a logarithmic BOT might serve GenShen better than its current use of an object start array.

      The difference will only be noticeable for larger objects and object arrays, where the current scheme has a lookup cost that is linear in the size of the object whereas being logarithmic for the logBOT. Another upside is that the (log)BOT updates involve a much smaller percentage of allocations, so the allocation path is sped up. Furthermore, the allocation paths and code are simplified because there is no need to be careful about mutual interference in BOT updates by concurrently allocating threads, which complicates some of the TLAB and PLAB handling in current code. This might further speed up allocation paths as well as reduce the constraints on TLAB and PLAB sizing in terms of not needing to be card-sized quanta.

      The downside to watch for is that whereas the object start array update is constant time independent of the size of the object, the (log)BOT update is proportional to the size of (the large) object.

      The initial task will consist of measuring the cost of `block_start` as currently used in card-scanning, and determining if the object start array is used for any other purposes.


        Issue Links



              ysr Y. Ramakrishna
              ysr Y. Ramakrishna
              0 Vote for this issue
              2 Start watching this issue