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

Reply via email to