Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 99779db9ef0c3057b52e8d2d233728ddbb55d3ae
https://github.com/WebKit/WebKit/commit/99779db9ef0c3057b52e8d2d233728ddbb55d3ae
Author: Marcus Plutowski <[email protected]>
Date: 2026-04-28 (Tue, 28 Apr 2026)
Changed paths:
M Source/bmalloc/CMakeLists.txt
M Source/bmalloc/bmalloc.xcodeproj/project.pbxproj
M Source/bmalloc/libpas/Documentation.md
M Source/bmalloc/libpas/libpas.xcodeproj/project.pbxproj
M Source/bmalloc/libpas/src/libpas/bmalloc_heap_config.h
M Source/bmalloc/libpas/src/libpas/hotbit_heap_config.h
M Source/bmalloc/libpas/src/libpas/iso_heap_config.h
M Source/bmalloc/libpas/src/libpas/iso_test_heap_config.h
M Source/bmalloc/libpas/src/libpas/jit_heap_config.c
M Source/bmalloc/libpas/src/libpas/jit_heap_config.h
M Source/bmalloc/libpas/src/libpas/minalign32_heap_config.h
M Source/bmalloc/libpas/src/libpas/pagesize64k_heap_config.h
M Source/bmalloc/libpas/src/libpas/pas_all_heaps.c
R Source/bmalloc/libpas/src/libpas/pas_all_shared_page_directories.c
R Source/bmalloc/libpas/src/libpas/pas_all_shared_page_directories.h
M Source/bmalloc/libpas/src/libpas/pas_basic_heap_page_caches.h
R
Source/bmalloc/libpas/src/libpas/pas_compact_atomic_segregated_partial_view_ptr.h
R
Source/bmalloc/libpas/src/libpas/pas_compact_segregated_shared_page_directory_ptr.h
R Source/bmalloc/libpas/src/libpas/pas_compact_segregated_shared_view_ptr.h
M
Source/bmalloc/libpas/src/libpas/pas_create_basic_heap_page_caches_with_reserved_memory.c
M Source/bmalloc/libpas/src/libpas/pas_deallocate.c
M Source/bmalloc/libpas/src/libpas/pas_deallocate.h
M Source/bmalloc/libpas/src/libpas/pas_deferred_decommit_log.c
M Source/bmalloc/libpas/src/libpas/pas_enumerate_segregated_heaps.c
M Source/bmalloc/libpas/src/libpas/pas_full_alloc_bits_inlines.h
M Source/bmalloc/libpas/src/libpas/pas_get_allocation_size.h
M Source/bmalloc/libpas/src/libpas/pas_get_heap.h
M
Source/bmalloc/libpas/src/libpas/pas_get_page_base_and_kind_for_small_other_in_fast_megapage.h
M Source/bmalloc/libpas/src/libpas/pas_heap_config.h
M Source/bmalloc/libpas/src/libpas/pas_heap_config_utils.c
M Source/bmalloc/libpas/src/libpas/pas_heap_config_utils.h
M Source/bmalloc/libpas/src/libpas/pas_heap_config_utils_inlines.h
M Source/bmalloc/libpas/src/libpas/pas_heap_runtime_config.h
M Source/bmalloc/libpas/src/libpas/pas_internal_config.h
M Source/bmalloc/libpas/src/libpas/pas_local_allocator.c
M Source/bmalloc/libpas/src/libpas/pas_local_allocator.h
M Source/bmalloc/libpas/src/libpas/pas_local_allocator_config_kind.h
M Source/bmalloc/libpas/src/libpas/pas_local_allocator_inlines.h
M Source/bmalloc/libpas/src/libpas/pas_mte.h
M Source/bmalloc/libpas/src/libpas/pas_object_kind.h
M Source/bmalloc/libpas/src/libpas/pas_page_base.c
M Source/bmalloc/libpas/src/libpas/pas_page_kind.h
M Source/bmalloc/libpas/src/libpas/pas_page_sharing_participant.c
M Source/bmalloc/libpas/src/libpas/pas_page_sharing_participant_kind.h
M Source/bmalloc/libpas/src/libpas/pas_segregated_directory.c
M Source/bmalloc/libpas/src/libpas/pas_segregated_directory.h
M Source/bmalloc/libpas/src/libpas/pas_segregated_directory_kind.h
M Source/bmalloc/libpas/src/libpas/pas_segregated_heap.c
M Source/bmalloc/libpas/src/libpas/pas_segregated_page.c
M Source/bmalloc/libpas/src/libpas/pas_segregated_page.h
M Source/bmalloc/libpas/src/libpas/pas_segregated_page_config.c
M Source/bmalloc/libpas/src/libpas/pas_segregated_page_config.h
M Source/bmalloc/libpas/src/libpas/pas_segregated_page_config_inlines.h
M Source/bmalloc/libpas/src/libpas/pas_segregated_page_config_kind.def
M Source/bmalloc/libpas/src/libpas/pas_segregated_page_config_kind.h
R
Source/bmalloc/libpas/src/libpas/pas_segregated_page_config_kind_and_role.c
R
Source/bmalloc/libpas/src/libpas/pas_segregated_page_config_kind_and_role.h
M Source/bmalloc/libpas/src/libpas/pas_segregated_page_config_utils.h
M
Source/bmalloc/libpas/src/libpas/pas_segregated_page_config_utils_inlines.h
M Source/bmalloc/libpas/src/libpas/pas_segregated_page_inlines.h
R Source/bmalloc/libpas/src/libpas/pas_segregated_page_role.h
R Source/bmalloc/libpas/src/libpas/pas_segregated_partial_view.c
R Source/bmalloc/libpas/src/libpas/pas_segregated_partial_view.h
R Source/bmalloc/libpas/src/libpas/pas_segregated_partial_view_inlines.h
R Source/bmalloc/libpas/src/libpas/pas_segregated_shared_handle.c
R Source/bmalloc/libpas/src/libpas/pas_segregated_shared_handle.h
R Source/bmalloc/libpas/src/libpas/pas_segregated_shared_handle_inlines.h
R Source/bmalloc/libpas/src/libpas/pas_segregated_shared_page_directory.c
R Source/bmalloc/libpas/src/libpas/pas_segregated_shared_page_directory.h
R Source/bmalloc/libpas/src/libpas/pas_segregated_shared_view.c
R Source/bmalloc/libpas/src/libpas/pas_segregated_shared_view.h
R Source/bmalloc/libpas/src/libpas/pas_segregated_shared_view_inlines.h
M Source/bmalloc/libpas/src/libpas/pas_segregated_size_directory.c
M Source/bmalloc/libpas/src/libpas/pas_segregated_view.c
M Source/bmalloc/libpas/src/libpas/pas_segregated_view.h
M Source/bmalloc/libpas/src/libpas/pas_segregated_view_allocator_inlines.h
M Source/bmalloc/libpas/src/libpas/pas_segregated_view_kind.h
R Source/bmalloc/libpas/src/libpas/pas_shared_handle_or_page_boundary.h
R
Source/bmalloc/libpas/src/libpas/pas_shared_handle_or_page_boundary_inlines.h
R Source/bmalloc/libpas/src/libpas/pas_shared_page_directory_by_size.c
R Source/bmalloc/libpas/src/libpas/pas_shared_page_directory_by_size.h
M Source/bmalloc/libpas/src/libpas/pas_status_reporter.c
M Source/bmalloc/libpas/src/libpas/pas_status_reporter.h
M Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.c
M Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.h
M Source/bmalloc/libpas/src/libpas/pas_try_reallocate.h
M Source/bmalloc/libpas/src/libpas/pas_try_shrink.h
M Source/bmalloc/libpas/src/libpas/pas_utility_heap.c
M Source/bmalloc/libpas/src/libpas/pas_utility_heap_config.c
M Source/bmalloc/libpas/src/libpas/pas_utility_heap_config.h
M Source/bmalloc/libpas/src/libpas/thingy_heap_config.h
M Source/bmalloc/libpas/src/test/IsoHeapChaosTests.cpp
M Source/bmalloc/libpas/src/test/IsoHeapPageSharingTests.cpp
M Source/bmalloc/libpas/src/test/IsoHeapPartialAndBaselineTests.cpp
M Source/bmalloc/libpas/src/test/LotsOfHeapsAndThreads.cpp
M Source/bmalloc/libpas/src/test/RaceTests.cpp
M Source/bmalloc/libpas/src/test/TLCDecommitTests.cpp
M Source/bmalloc/libpas/src/test/TestHarness.cpp
M Source/bmalloc/libpas/src/test/TestHarness.h
M Source/bmalloc/libpas/src/test/ThingyAndUtilityHeapAllocationTests.cpp
M Source/bmalloc/libpas/src/test/ViewCacheTests.cpp
Log Message:
-----------
[libpas] Remove partial views
https://bugs.webkit.org/show_bug.cgi?id=304655
rdar://151419388
Reviewed by Yusuke Suzuki.
Partial views have been completely disabled for some time, as the
benefits they gave (<1% memory savings) were not worth the complexity,
for reasons of security, performance, and maintanance burden.
In particular, the performance-memory tradeoff was unfavorable, and we
were able to pay for their disablement with some changes to the
object-size-class allocation layout.
As this code is unused, it should be removed to reduce complexity and
improve speed of development. This patch tears out the implementation
for partial views, including
- partial views
- shared views
- shared directories
and other affiliated structures.
* Source/bmalloc/libpas/src/libpas/jit_heap_config.c:
(jit_small_segregated_shared_page_directory_selector): Deleted.
(jit_heap_config_for_each_shared_page_directory): Deleted.
(jit_heap_config_for_each_shared_page_directory_remote): Deleted.
(jit_heap_config_dump_shared_page_directory_arg): Deleted.
* Source/bmalloc/libpas/src/libpas/pas_all_heaps.c:
(for_each_segregated_directory_shared_page_directory_callback): Deleted.
* Source/bmalloc/libpas/src/libpas/pas_all_shared_page_directories.c: Removed.
* Source/bmalloc/libpas/src/libpas/pas_all_shared_page_directories.h: Removed.
* Source/bmalloc/libpas/src/libpas/pas_basic_heap_page_caches.h:
(pas_basic_heap_page_caches_get_shared_page_directories): Deleted.
*
Source/bmalloc/libpas/src/libpas/pas_compact_atomic_segregated_partial_view_ptr.h:
Removed.
*
Source/bmalloc/libpas/src/libpas/pas_compact_segregated_shared_page_directory_ptr.h:
Removed.
* Source/bmalloc/libpas/src/libpas/pas_compact_segregated_shared_view_ptr.h:
Removed.
* Source/bmalloc/libpas/src/libpas/pas_enumerate_segregated_heaps.c:
(collect_shared_page_directories_shared_page_directory_callback): Deleted.
(collect_shared_page_directories_heap_callback): Deleted.
(enumerate_shared_view): Deleted.
(enumerate_partial_view): Deleted.
(shared_page_directory_view_callback): Deleted.
* Source/bmalloc/libpas/src/libpas/pas_full_alloc_bits_inlines.h:
(pas_full_alloc_bits_create_for_view_and_directory):
(pas_full_alloc_bits_create_for_view):
(pas_full_alloc_bits_create_for_partial_but_not_primordial): Deleted.
(pas_full_alloc_bits_create_for_partial): Deleted.
* Source/bmalloc/libpas/src/libpas/pas_heap_config_utils.c:
(pas_heap_config_utils_for_each_shared_page_directory): Deleted.
(pas_heap_config_utils_for_each_shared_page_directory_remote): Deleted.
* Source/bmalloc/libpas/src/libpas/pas_local_allocator_config_kind.h:
(pas_local_allocator_config_kind_is_primordial_partial): Deleted.
(pas_local_allocator_config_kind_create_primordial_partial): Deleted.
* Source/bmalloc/libpas/src/libpas/pas_local_allocator_inlines.h:
(pas_local_allocator_set_up_primordial_bump): Deleted.
(pas_local_allocator_start_allocating_in_primordial_partial_view): Deleted.
(pas_local_allocator_bless_primordial_partial_view_before_stopping): Deleted.
(pas_local_allocator_try_allocate_in_primordial_partial_view): Deleted.
(pas_local_allocator_return_memory_to_page_for_role): Deleted.
* Source/bmalloc/libpas/src/libpas/pas_page_kind.h:
(pas_page_kind_get_segregated_role): Deleted.
(pas_page_kind_for_segregated_variant_and_role): Deleted.
* Source/bmalloc/libpas/src/libpas/pas_segregated_page_config.h:
(pas_segregated_page_config_payload_offset_for_role): Deleted.
(pas_segregated_page_config_payload_size_for_role): Deleted.
(pas_segregated_page_config_payload_end_offset_for_role): Deleted.
(pas_segregated_page_config_enable_empty_word_eligibility_optimization_for_role):
Deleted.
(pas_segregated_page_config_logging_mode_for_role): Deleted.
* Source/bmalloc/libpas/src/libpas/pas_segregated_page_config_kind_and_role.c:
Removed.
* Source/bmalloc/libpas/src/libpas/pas_segregated_page_config_kind_and_role.h:
Removed.
* Source/bmalloc/libpas/src/libpas/pas_segregated_page_inlines.h:
* Source/bmalloc/libpas/src/libpas/pas_segregated_page_role.h: Removed.
* Source/bmalloc/libpas/src/libpas/pas_segregated_partial_view.c: Removed.
* Source/bmalloc/libpas/src/libpas/pas_segregated_partial_view.h: Removed.
* Source/bmalloc/libpas/src/libpas/pas_segregated_partial_view_inlines.h:
Removed.
* Source/bmalloc/libpas/src/libpas/pas_segregated_shared_handle.c: Removed.
* Source/bmalloc/libpas/src/libpas/pas_segregated_shared_handle.h: Removed.
* Source/bmalloc/libpas/src/libpas/pas_segregated_shared_handle_inlines.h:
Removed.
* Source/bmalloc/libpas/src/libpas/pas_segregated_shared_page_directory.c:
Removed.
* Source/bmalloc/libpas/src/libpas/pas_segregated_shared_page_directory.h:
Removed.
* Source/bmalloc/libpas/src/libpas/pas_segregated_shared_view.c: Removed.
* Source/bmalloc/libpas/src/libpas/pas_segregated_shared_view.h: Removed.
* Source/bmalloc/libpas/src/libpas/pas_segregated_shared_view_inlines.h:
Removed.
* Source/bmalloc/libpas/src/libpas/pas_segregated_view.c:
(pas_segregated_view_is_primordial_partial): Deleted.
* Source/bmalloc/libpas/src/libpas/pas_segregated_view.h:
(pas_segregated_view_is_shared): Deleted.
(pas_segregated_view_get_shared): Deleted.
(pas_segregated_view_is_shared_handle): Deleted.
(pas_segregated_view_get_shared_handle): Deleted.
(pas_segregated_view_is_partial): Deleted.
(pas_segregated_view_get_partial): Deleted.
(pas_segregated_view_get_page_role_for_owner): Deleted.
(pas_segregated_view_get_page_role_for_allocator): Deleted.
* Source/bmalloc/libpas/src/libpas/pas_segregated_view_kind.h:
(pas_segregated_view_kind_get_role_for_owner): Deleted.
(pas_segregated_view_kind_get_role_for_allocator): Deleted.
* Source/bmalloc/libpas/src/libpas/pas_shared_handle_or_page_boundary.h:
Removed.
*
Source/bmalloc/libpas/src/libpas/pas_shared_handle_or_page_boundary_inlines.h:
Removed.
* Source/bmalloc/libpas/src/libpas/pas_shared_page_directory_by_size.c: Removed.
* Source/bmalloc/libpas/src/libpas/pas_shared_page_directory_by_size.h: Removed.
* Source/bmalloc/libpas/src/libpas/pas_status_reporter.c:
(pas_status_reporter_dump_segregated_shared_page_directory): Deleted.
(dump_all_shared_page_directories_directory_callback): Deleted.
(pas_status_reporter_dump_all_shared_page_directories): Deleted.
(total_fragmentation_shared_page_directory_callback): Deleted.
* Source/bmalloc/libpas/src/libpas/pas_utility_heap_config.c:
(pas_utility_heap_shared_page_directory_selector): Deleted.
(pas_utility_heap_config_for_each_shared_page_directory): Deleted.
(pas_utility_heap_config_dump_shared_page_directory_arg): Deleted.
* Source/bmalloc/libpas/src/test/IsoHeapPartialAndBaselineTests.cpp:
(std::forEachSharedPageDirectoryCallbackAdaptor): Deleted.
(std::forEachSharedPageDirectory): Deleted.
(std::numSharedPages): Deleted.
(std::numCommittedSharedPages): Deleted.
(std::testSimplePartialAllocations): Deleted.
(std::testFreeAroundPrimordialStop): Deleted.
(std::testFreeInterleavedAroundPrimordialStop): Deleted.
(std::testMultiplePartialsFromDifferentHeapsPerShared): Deleted.
(std::addMultiplePartialsFromDifferentHeapsPerSharedTests): Deleted.
(std::testMultiplePartialsFromDifferentThreadsPerShared): Deleted.
* Source/bmalloc/libpas/src/test/TestHarness.cpp:
(ForceExclusives::ForceExclusives): Deleted.
(ForcePartials::ForcePartials): Deleted.
* Source/bmalloc/libpas/src/test/ViewCacheTests.cpp:
Canonical link: https://commits.webkit.org/312239@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications