[roll] Roll fuchsia [memory][scudo] Raise CustomSizeClassMap max size to 128 KiB

With MaxSizeLog = 16 (MaxSize = 65,552 B), allocations slightly above
64 KiB (including the 16-byte Scudo chunk header) overflow the Primary
allocator into the uncached Secondary allocator (MapAllocatorNoCache),
causing a per-call VMO create/map/unmap/close cycle and zero-page
faults:
- fdf_arena::Allocate(65536) (65,568 B needed) for driver FIDL tables
  and unbounded vector requests
- zxio_dirent_iterator_t (65,616 B needed) on directory iteration
- Sdmmc.Request client sync buffer (65,600 B needed)
- HLCPP IncomingMessageBuffer (66,576 B) and OutgoingMessageBuffer
  (67,088 B)

Raise MaxSizeLog to 17 (128 KiB), drop the 3248-byte class to keep the
total class count at 44 (NumClasses = 45), and replace the 65552-byte
tail class with 67600 (65536 + 2*1024 + 16, satisfying the
TableSizeClassMap step invariant for (64 KiB, 128 KiB]) and 131088
(128 KiB + 16 B). This retains 99.2% of the heap padding savings while
serving 64 KiB+ header-padded and 128 KiB buffers from Primary.

This was discovered after Icaef2bae5b806154d82b92a6615e7a468837f9ff
was implicated in several storage-related performance regressions
(see bugs below).

Original-Original-Bug: 382623426
Original-Original-Bug: 579983314
Original-Original-Bug: 579983312
Original-Original-Bug: 579974039
Original-Original-Bug: 579976544
Test: fx test scudo-unittests
Original-Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1944448
Agent-Code-Review: Fuchsia CL Risk (Advisory) <groupagent-fuchsia-risk@google.com>
Risk: Fuchsia CL Risk (Advisory) <groupagent-fuchsia-risk@google.com>
Original-Original-Revision: 1a9d3a51afcc8904befa58f61493a7b89059cbba
GitOrigin-RevId: 07a650052a43b40ce7ccd2d2b956e0d6b93e4f77
Change-Id: I74aae8ae8c563cc106d9c7a3434bb44434f587a6
Reviewed-on: https://fuchsia-review.googlesource.com/c/integration/+/1955297
Cr-Commit-Position: refs/heads/main@{#211449}
1 file changed
tree: 76f803b73d6ccf11142d1176d8d425593185f123
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cobalt
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.