• Michael Lippautz's avatar
    [heap] Rework Worklist base type · a19316d9
    Michael Lippautz authored
    Worklist uses a singly-linked list of segments to hold entries.
    Segment size was based on a compile-time constant but already stored
    in the segment itself.
    
    Rework the segments to query `malloc_usable_size()` on allocation and
    adjust the capacity properly. For PartitionAlloc, it turns out that
    there's ~20% more capacity available for the 64-element segments.
    
    This slows down actual allocation of the segments with the upside of
    improving utilization and requiring 20% less segments.
    
    Change-Id: Ib8595c3fb9fb75b02e4022f6c525bb59a2df7ab7
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3826047
    Commit-Queue: Anton Bikineev <bikineev@chromium.org>
    Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
    Reviewed-by: 's avatarAnton Bikineev <bikineev@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#82432}
    a19316d9
test-concurrent-marking.cc 5.25 KB