HomeFreeBSD

Sort uma_zone fields according to 64 byte cache line with adjacent line

Description

Sort uma_zone fields according to 64 byte cache line with adjacent line
prefetch on 64bit architectures. Prior to this, two lines were needed
for the fast path and each line may fetch an unused adjacent neighbor.

  • Move fields used by the fast path into a single line.
  • Move constants into the adjacent line which is mostly used for the spare bucket alloc 'medium path'.
  • Unpad the mtx which is only used by the fast path and place it in a line with rarely used data. This aligns the cachelines better and eliminates 128 bytes of wasted space.

This gives a 45% improvement on a will-it-scale test on a 24 core machine.

Reviewed by: mmacy

Details

Provenance
jeffAuthored on
Reviewer
mmacy
Parents
rS335578: epoch(9): Don't trigger taskq enqueue before the grouptaskqs are setup
Branches
Unknown
Tags
Unknown