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)
Mon, Mar 30, 12:39 PM
Unknown Object (File)
Mon, Mar 30, 12:05 AM
Unknown Object (File)
Tue, Mar 24, 2:15 AM
Unknown Object (File)
Thu, Mar 19, 3:30 AM
Unknown Object (File)
Wed, Mar 18, 6:45 AM
Unknown Object (File)
Tue, Mar 17, 1:29 PM
Unknown Object (File)
Tue, Mar 17, 5:10 AM
Unknown Object (File)
Tue, Mar 17, 5:04 AM
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