[webkit-changes] [WebKit/WebKit] bad2b1: Integrate PGM for large heap allocations
Brandon Stewart
noreply at github.com
Wed Feb 15 22:19:19 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: bad2b1b9cb893c36c7d869820a8fae97ab36356e
https://github.com/WebKit/WebKit/commit/bad2b1b9cb893c36c7d869820a8fae97ab36356e
Author: Brandon Stewart <brandonstewart at apple.com>
Date: 2023-02-15 (Wed, 15 Feb 2023)
Changed paths:
M Source/bmalloc/bmalloc.xcodeproj/project.pbxproj
M Source/bmalloc/libpas/src/libpas/bmalloc_heap_config.h
M Source/bmalloc/libpas/src/libpas/iso_heap_config.h
M Source/bmalloc/libpas/src/libpas/pas_heap.c
M Source/bmalloc/libpas/src/libpas/pas_heap_config_utils.h
M Source/bmalloc/libpas/src/libpas/pas_large_heap.c
M Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c
M Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.h
M Source/bmalloc/libpas/src/libpas/pas_try_allocate_common.h
M Source/bmalloc/libpas/src/libpas/pas_try_reallocate.h
M Source/bmalloc/libpas/src/test/PGMTests.cpp
Log Message:
-----------
Integrate PGM for large heap allocations
https://bugs.webkit.org/show_bug.cgi?id=249371
Reviewed by Yusuke Suzuki.
This patch turns on PGM allocations for large heaps.
PGM will be enabled 1 in 1000 times upon process launch, and a PGM allocation
will be performed every 4,000 to 5,000 times.
This patch also adds re-allocation support to PGM. PGM allocations can be re-allocated
to a non pgm allocation and vice versa.
Based on benchmarks there was no noticable memory or performance overhead observed when enabling
this feature.
* Source/bmalloc/libpas/libpas.xcodeproj/project.pbxproj:
* Source/bmalloc/libpas/src/libpas/bmalloc_heap_config.h:
* Source/bmalloc/libpas/src/libpas/iso_heap_config.h:
* Source/bmalloc/libpas/src/libpas/pas_heap.c:
(pas_heap_create):
* Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c:
(pas_probabilistic_guard_malloc_allocate):
(pas_probabilistic_guard_malloc_return_as_large_map_entry):
(pas_probabilistic_guard_malloc_should_call_pgm):
(pas_probabilistic_guard_malloc_initialize_pgm):
* Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.h:
* Source/bmalloc/libpas/src/libpas/pas_try_allocate_common.h:
(pas_try_allocate_common_impl_slow):
* Source/bmalloc/libpas/src/libpas/pas_try_reallocate.h:
(pas_try_reallocate):
* Source/bmalloc/libpas/src/test/PGMTests.cpp:
(std::testPGMRealloc):
(addPGMTests):
Canonical link: https://commits.webkit.org/260353@main
More information about the webkit-changes
mailing list