[webkit-changes] [WebKit/WebKit] 4075b8: Make more JavaScriptCore allocations use heap iden...

Simon Fraser noreply at github.com
Tue Feb 14 08:55:47 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4075b8460d2c901a010f317dfde6a1d20e3f32b4
      https://github.com/WebKit/WebKit/commit/4075b8460d2c901a010f317dfde6a1d20e3f32b4
  Author: Simon Fraser <simon.fraser at apple.com>
  Date:   2023-02-14 (Tue, 14 Feb 2023)

  Changed paths:
    M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
    M Source/JavaScriptCore/Sources.txt
    M Source/JavaScriptCore/bytecode/GetByStatus.cpp
    M Source/JavaScriptCore/bytecode/GetByStatus.h
    M Source/JavaScriptCore/bytecode/PutByStatus.cpp
    M Source/JavaScriptCore/bytecode/PutByStatus.h
    M Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp
    M Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h
    M Source/JavaScriptCore/bytecode/UnlinkedMetadataTable.cpp
    M Source/JavaScriptCore/bytecode/UnlinkedMetadataTable.h
    M Source/JavaScriptCore/heap/GigacageAlignedMemoryAllocator.cpp
    M Source/JavaScriptCore/heap/Heap.cpp
    M Source/JavaScriptCore/heap/IsoAlignedMemoryAllocator.cpp
    M Source/JavaScriptCore/heap/IsoAlignedMemoryAllocator.h
    M Source/JavaScriptCore/heap/IsoSubspace.h
    M Source/JavaScriptCore/heap/IsoSubspacePerVM.h
    A Source/JavaScriptCore/jit/JITCodeMap.cpp
    M Source/JavaScriptCore/jit/JITCodeMap.h
    A Source/JavaScriptCore/runtime/HasOwnPropertyCache.cpp
    M Source/JavaScriptCore/runtime/HasOwnPropertyCache.h
    M Source/JavaScriptCore/runtime/VM.h

  Log Message:
  -----------
  Make more JavaScriptCore allocations use heap identifiers
https://bugs.webkit.org/show_bug.cgi?id=252104
rdar://105315215

Reviewed by Yusuke Suzuki.

When BENABLE_MALLOC_HEAP_BREAKDOWN and ENABLE_MALLOC_HEAP_BREAKDOWN are defined, we use multiple debug heaps
with identifiers to make it easier to determine what is using memory when using system memory tools.

Break down more of the "WebKit Using System Malloc" heap by assigning heap identifiers to more allocations
in JavaScriptCore. These were motivated by tracking the largest uncategorized live allocations, via
TRACK_MALLOC_CALLSTACK.

WTF_MAKE_FAST_ALLOCATED_WITH_HEAP_IDENTIFIER() is added for GetByStatus, PutByStatus, UnlinkedCodeBlock_RareData,
UnlinkedMetadataTable, JITCodeMap, HasOwnPropertyCache and VM.

IsoAlignedMemoryAllocator gets its own DebugHeap just like GigacageAlignedMemoryAllocator.

* Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
* Source/JavaScriptCore/Sources.txt:
* Source/JavaScriptCore/bytecode/GetByStatus.cpp:
* Source/JavaScriptCore/bytecode/GetByStatus.h:
* Source/JavaScriptCore/bytecode/PutByStatus.cpp:
* Source/JavaScriptCore/bytecode/PutByStatus.h:
* Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp:
* Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h:
* Source/JavaScriptCore/bytecode/UnlinkedMetadataTable.cpp:
* Source/JavaScriptCore/bytecode/UnlinkedMetadataTable.h:
* Source/JavaScriptCore/heap/GigacageAlignedMemoryAllocator.cpp:
(JSC::GigacageAlignedMemoryAllocator::GigacageAlignedMemoryAllocator): Shorten the name to make output more readable.
* Source/JavaScriptCore/heap/Heap.cpp:
* Source/JavaScriptCore/heap/IsoAlignedMemoryAllocator.cpp:
(JSC::IsoAlignedMemoryAllocator::IsoAlignedMemoryAllocator):
(JSC::IsoAlignedMemoryAllocator::tryAllocateMemory):
(JSC::IsoAlignedMemoryAllocator::freeMemory):
(JSC::IsoAlignedMemoryAllocator::tryMallocBlock):
(JSC::IsoAlignedMemoryAllocator::freeBlock):
* Source/JavaScriptCore/heap/IsoAlignedMemoryAllocator.h:
* Source/JavaScriptCore/heap/IsoSubspace.h: Shorten the name to make output more readable.
* Source/JavaScriptCore/heap/IsoSubspacePerVM.h: Ditto.
* Source/JavaScriptCore/jit/JITCodeMap.cpp: Copied from Source/JavaScriptCore/heap/IsoAlignedMemoryAllocator.h.
* Source/JavaScriptCore/jit/JITCodeMap.h:
(JSC::JITCodeMap::JITCodeMap):
* Source/JavaScriptCore/runtime/HasOwnPropertyCache.cpp: Copied from Source/JavaScriptCore/heap/IsoAlignedMemoryAllocator.h.
* Source/JavaScriptCore/runtime/HasOwnPropertyCache.h:
(JSC::HasOwnPropertyCache::operator delete):
(JSC::HasOwnPropertyCache::create):
* Source/JavaScriptCore/runtime/VM.h:

Canonical link: https://commits.webkit.org/260257@main




More information about the webkit-changes mailing list