Page MenuHomeFreeBSD

Allow overriding VTABSIZE at compile-time.
ClosedPublic

Authored by bdrewery on Feb 12 2018, 11:02 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Nov 14, 1:49 PM
Unknown Object (File)
Sun, Oct 27, 5:39 AM
Unknown Object (File)
Sun, Oct 27, 5:38 AM
Unknown Object (File)
Sun, Oct 27, 5:36 AM
Unknown Object (File)
Sun, Oct 27, 5:21 AM
Unknown Object (File)
Sep 30 2024, 3:57 AM
Unknown Object (File)
Sep 29 2024, 6:18 AM
Unknown Object (File)
Sep 28 2024, 5:15 PM
Subscribers

Details

Summary

Bumping this from 39 in Poudriere gives me significant time savings
in some cases due to heavy use of eval/setvar to store information
for all ports (25-30k+) in memory.

Specifically I have a hash_set/hash_isset/hash_get API that uses
eval/setvar to set arbitrary variables. I have it loading one
entry, for every port in the tree, into memory. I added some
calls to hash_set/hash_get (on unrelated-to-ports variables) into
a loop and found that it caused a 25% slowdown. I've realized
that I don't need this data loaded at all but want to bump the
value regardless since Poudriere uses so many vars and can easily
hit this sort of collision slowdown.

This will just let me override it at compile-time without needing
a patch.

It would be nice if this had auto resizing once collisions were
too high.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 14992
Build 15102: arc lint + arc unit

Event Timeline

I agree that hash table resizing would be nicer, but this is acceptable to commit.

This revision is now accepted and ready to land.Feb 13 2018, 4:21 PM
This revision was automatically updated to reflect the committed changes.