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, Mar 14, 8:26 PM
Unknown Object (File)
Feb 7 2024, 7:09 PM
Unknown Object (File)
Dec 20 2023, 2:51 AM
Unknown Object (File)
Dec 19 2023, 7:17 PM
Unknown Object (File)
Nov 25 2023, 3:38 AM
Unknown Object (File)
Nov 22 2023, 9:48 PM
Unknown Object (File)
Nov 22 2023, 3:39 PM
Unknown Object (File)
Nov 21 2023, 5:05 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