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

TLAB opportunities for improvement

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Other
    • Icon: P4 P4
    • 1.4.0
    • 1.3.0, 1.4.0
    • hotspot
    • gc
    • beta3
    • generic, x86
    • solaris_2.5.1, windows_nt

      A collection of problems and change requests regarding space and TLAB sizing.

      In b69 volano regresses 46% when going -client to -server, presumably because
      TLABs are off in the client. 64 bit jbb regresses 20% at certain numbers
      of threads because of GC needlessly kicking in because TLABs are mis-sized.
      Both benchmarks are unrunnable on large systems without special flags.

      1. threadLocalAllocBuffer::adjust_max_size() changes TLAB sizes based
      on criteria that include the current number of threads in the system.
      Unfortunately, it is only called when the heap is resized, which breaks
      in the common running mode of big systems where the heap size is
      fixed at the command line. It should be called at least at every GC.

      2. The default value of TLABThreadRatio (10) is too large to help for jbb,
      where there can be more threads than the value of MaxTLABRatio (128),
      but not enough for TLABThreadRatio to make any difference. The default
      value needs to be reconsidered. Because of #1, it isn't clear that
      the value 10 is the best for even Volano.

      3. TLABSize isn't used when ResizeTLABs is true. TLABs are resized only
      when a sufficiently large object is encountered such that the test using
      TLABFragmentationRatio fails. Thus, there exists the possibility that
      applications that do not allocate any large objects will be stuck with
      tiny TLABs for the duration of their execution. It is suggested that
      TLABs always get resized, or that the initial size be set to TLABSize
      whether or not ResizeTLABs is true.

      4. TLABSize and PrintTLAB should be a product flags, as they are in Ladybird.
      They are important for tuning and diagnosis.

            jmcilreesunw James Mcilree (Inactive)
            dstoutamsunw David Stoutamire (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: