Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b8d7e24add9bdcbd3ac7c6870730c29a84a06038
https://github.com/WebKit/WebKit/commit/b8d7e24add9bdcbd3ac7c6870730c29a84a06038
Author: Yusuke Suzuki <[email protected]>
Date: 2026-09-10 (Thu, 10 Sep 2026)
Changed paths:
M JSTests/stress/warm-up-marked-blocks-state-machine.js
M Source/JavaScriptCore/heap/FastMallocAlignedMemoryAllocator.cpp
M Source/JavaScriptCore/heap/FastMallocAlignedMemoryAllocator.h
M Source/JavaScriptCore/tools/JSDollarVM.cpp
M Source/bmalloc/CMakeLists.txt
M Source/bmalloc/bmalloc.xcodeproj/project.pbxproj
M Source/bmalloc/libpas/CMakeLists.txt
M Source/bmalloc/libpas/libpas.xcodeproj/project.pbxproj
A Source/bmalloc/libpas/src/libpas/bmalloc_prefault_supply.c
A Source/bmalloc/libpas/src/libpas/bmalloc_prefault_supply.h
M Source/bmalloc/libpas/src/libpas/pas_page_malloc.c
M Source/bmalloc/libpas/src/libpas/pas_page_malloc.h
M Source/bmalloc/libpas/src/libpas/pas_thread.h
Log Message:
-----------
[JSC] Move WarmUp thread to libpas
https://bugs.webkit.org/show_bug.cgi?id=323480
rdar://186706616
Reviewed by Marcus Plutowski.
This is a preparation for extending tailord MarkedBlock heap in libpas.
This patch moves JSC's WarmUp pre-fault thread from JSC to libpas as
MarkedBlock is allocated and managed by libpas, so the policy like this
should be handled inside libpas. We make prefault page supply via
lock-free manner for supplying and consuming. And using lock etc. only
for refill request / shutdown request.
* JSTests/stress/warm-up-marked-blocks-state-machine.js:
* Source/JavaScriptCore/heap/FastMallocAlignedMemoryAllocator.cpp:
(JSC::warmUpMarkedBlocksIsEnabled):
(JSC::configureWarmUpSupply):
(JSC::warmUpMarkedBlocksAreEnabledForTesting):
(JSC::warmUpMarkedBlockCountForTesting):
(JSC::setWarmUpMarkedBlockAllocationShouldFailForTesting):
(JSC::FastMallocAlignedMemoryAllocator::tryAllocateAlignedMemory):
(): Deleted.
(JSC::warmUpMarkedBlockStateForTesting):
* Source/JavaScriptCore/heap/FastMallocAlignedMemoryAllocator.h:
* Source/JavaScriptCore/tools/JSDollarVM.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSDollarVM::finishCreation):
* Source/bmalloc/CMakeLists.txt:
* Source/bmalloc/bmalloc.xcodeproj/project.pbxproj:
* Source/bmalloc/libpas/CMakeLists.txt:
* Source/bmalloc/libpas/libpas.xcodeproj/project.pbxproj:
* Source/bmalloc/libpas/src/libpas/bmalloc_prefault_supply.c: Added.
(PAS_ALIGNED):
(supply_target):
(bmalloc_prefault_supply_set_block_size):
(bmalloc_prefault_supply_block_count):
(bmalloc_prefault_supply_scavenge):
(refill):
(now_in_nanoseconds):
(compute_idle_deadline):
(supply_thread_main):
(claim_filling_thread):
(create_filling_thread):
(bmalloc_prefault_supply_try_allocate):
* Source/bmalloc/libpas/src/libpas/bmalloc_prefault_supply.h: Added.
* Source/bmalloc/libpas/src/libpas/pas_page_malloc.c:
(pas_page_malloc_populate):
* Source/bmalloc/libpas/src/libpas/pas_page_malloc.h:
* Source/bmalloc/libpas/src/libpas/pas_thread.h:
Canonical link: https://commits.webkit.org/320895@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications