This is an archive of the discontinued LLVM Phabricator instance.

[scudo] Separate Fuchsia & Default SizeClassMap
ClosedPublic

Authored by cryptoad on May 19 2021, 9:13 AM.

Details

Summary

The Fuchsia allocator config was using the default size class map.

This CL gives Fuchsia its own size class map and changes a couple of
things in the default one:

  • make SizeDelta configurable in Config for a fixed size class map as it currently is for a table size class map;
  • switch SizeDelta to 0 for the default config, it allows for size classes that allow for power of 2s, and overall better wrt pages filling;
  • increase the max number of caches pointers to 14 in the default, this makes the transfer batch 64/128 bytes on 32/64-bit platforms, which is cache-line friendly (previous size was 48/96 bytes).

The Fuchsia size class map remains untouched for now, this doesn't
impact Android which uses the table size class map.

Diff Detail

Event Timeline

cryptoad created this revision.May 19 2021, 9:13 AM
cryptoad requested review of this revision.May 19 2021, 9:13 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 19 2021, 9:13 AM
Herald added a subscriber: Restricted Project. · View Herald Transcript

I should say that this improves the QPS for rpc2 benchmark in g3:

  • New SCM: Finished measurement, throughput=438422.221084 reqs/sec.
  • Old SCM: Finished measurement, throughput=421669.366002 reqs/sec.
cryptoad updated this revision to Diff 346765.May 20 2021, 9:32 AM

Shuffle a couple of lines around.

vitalybuka accepted this revision.May 23 2021, 3:29 PM
This revision is now accepted and ready to land.May 23 2021, 3:29 PM
This revision was landed with ongoing or failed builds.May 24 2021, 8:54 AM
This revision was automatically updated to reflect the committed changes.