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

Improve BufferNode::Allocator::release to avoid walking pending list

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Fixed
    • P4
    • 19
    • 19
    • hotspot
    • gc
    • b10

    Description

      When a node is released back to the BufferNode allocator, it is placed on the pending list (a LockFreeStack) to await batch transfer to the free list. When that transfer is performed, the accumulated pending list needs to be walked to find the last node, for use in the prepend of the pending list to the free list.

      If we change the allocator to double-buffer the pending list, we can capture the initially added element as the tail of the list. Transfer flips the active pending list. We can then take the head/tail of the deactivated pending list and directly prepend to the free list, without needing a list walk to find the last node.

      Attachments

        Issue Links

          Activity

            People

              kbarrett Kim Barrett
              kbarrett Kim Barrett
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: