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)
Thu, Nov 14, 5:44 PM
Unknown Object (File)
Thu, Nov 14, 4:40 PM
Unknown Object (File)
Oct 17 2024, 10:30 PM
Unknown Object (File)
Oct 3 2024, 11:29 AM
Unknown Object (File)
Oct 3 2024, 11:29 AM
Unknown Object (File)
Oct 3 2024, 11:29 AM
Unknown Object (File)
Oct 3 2024, 11:22 AM
Unknown Object (File)
Sep 24 2024, 12:10 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

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

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 ↗(On Diff #67744)

This comment probably deserves a clarification.

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