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

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

XMLWordPrintable

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

      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.

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

              Created:
              Updated:
              Resolved: