[all-commits] [llvm/llvm-project] 3d67cf: [JITLink] Always unmap standard segments in InProc...

Min-Yih Hsu via All-commits all-commits at lists.llvm.org
Fri Feb 16 16:20:09 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3d67cf681a728e4cf0ab9947c0dd07539dda8b74
      https://github.com/llvm/llvm-project/commit/3d67cf681a728e4cf0ab9947c0dd07539dda8b74
  Author: Min-Yih Hsu <min.hsu at sifive.com>
  Date:   2024-02-16 (Fri, 16 Feb 2024)

  Changed paths:
    M llvm/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp

  Log Message:
  -----------
  [JITLink] Always unmap standard segments in InProcessMemoryManager::deallocate (#81943)

Right now InProcessMemoryManager only releases a standard segment (via
sys::Memory::releaseMappedMemory) in `deallocate` when there is a
DeallocAction associated, leaving residual memory pages in the process
until termination.
Despite being a de facto memory leak, it won't cause a major issue if
users only create a single LLJIT instance per process, which is the most
common use cases. It will, however, drain virtual memory pages if we
create thousands of ephemeral LLJIT instances in the same process.

This patch fixes this issue by releasing every standard segments
regardless of the attached DeallocAction.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list