Page MenuHomeFreeBSD

Use literal bucket sizes for small buckets.
ClosedPublic

Authored by jeff on Feb 3 2020, 9:51 PM.
Tags
None
Referenced Files
Unknown Object (File)
May 19 2026, 11:01 AM
Unknown Object (File)
May 18 2026, 1:16 AM
Unknown Object (File)
May 18 2026, 1:16 AM
Unknown Object (File)
May 18 2026, 12:55 AM
Unknown Object (File)
Apr 27 2026, 10:48 AM
Unknown Object (File)
Apr 24 2026, 11:46 AM
Unknown Object (File)
Apr 8 2026, 9:10 PM
Unknown Object (File)
Apr 8 2026, 3:08 PM
Subscribers

Details

Summary

This addresses the bug Mark fixed in a different way. The BUCKET_SIZE macro was intended to efficiently pack larger buckets. I don't believe I had any buckets as small as we have today when I wrote it as I did not anticipate high traffic 4k page allocation from UMA. I also think it's a little silly to have a bucket with one pointer in it. That's a lot of machinery for a single pointer.

This change will slightly increase memory consumption. I can back it down to the existing limits but I like this better.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 29148
Build 27084: arc lint + arc unit

Event Timeline

jeff added reviewers: rlibby, markj.
jeff set the repository for this revision to rS FreeBSD src repository - subversion.

This seems reasonable. With D23493 you get pretty good efficiency in the 16_Bucket zone, at least on amd64.

sys/vm/uma_core.c
234

This comment probably deserves a clarification.

This revision is now accepted and ready to land.Feb 3 2020, 11:29 PM