[all-commits] [llvm/llvm-project] 5df428: [Orc] Actually save the callback

Anubhab Ghosh via All-commits all-commits at lists.llvm.org
Sun Aug 21 04:09:02 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5df428eac37fddbe35c1a18d975ea836277708c1
      https://github.com/llvm/llvm-project/commit/5df428eac37fddbe35c1a18d975ea836277708c1
  Author: Anubhab Ghosh <anubhabghosh.me at gmail.com>
  Date:   2022-08-21 (Sun, 21 Aug 2022)

  Changed paths:
    M llvm/lib/ExecutionEngine/Orc/MapperJITLinkMemoryManager.cpp

  Log Message:
  -----------
  [Orc] Actually save the callback

The callback function was captured by reference but it lived on the
stack and was in danger of being overwritten and could cause a crash.

Differential Revision: https://reviews.llvm.org/D132313


  Commit: 1134d3a03facccd75efc5385ba46918bef94fcb6
      https://github.com/llvm/llvm-project/commit/1134d3a03facccd75efc5385ba46918bef94fcb6
  Author: Anubhab Ghosh <anubhabghosh.me at gmail.com>
  Date:   2022-08-21 (Sun, 21 Aug 2022)

  Changed paths:
    M llvm/lib/ExecutionEngine/Orc/MemoryMapper.cpp

  Log Message:
  -----------
  [Orc] Only unmap shared memory in controller process destructor

By the time SharedMemoryMapper destructor is called, the RPC
connection is no longer available causing the release() call to
always fail. Instead at this point only shared memory regions
can be unmapped safely.

Deinitializers are called and mapped memory is released at the
executor side by ExecutorSharedMemoryMapperService::shutdown()
instead. Memory can also be released earlier by calling release()
earlier before RPC connection is closed.

Differential Revision: https://reviews.llvm.org/D132313


  Commit: 0ecfee0b9eafd75627f37e2c460818bf41b39996
      https://github.com/llvm/llvm-project/commit/0ecfee0b9eafd75627f37e2c460818bf41b39996
  Author: Anubhab Ghosh <anubhabghosh.me at gmail.com>
  Date:   2022-08-21 (Sun, 21 Aug 2022)

  Changed paths:
    M llvm/lib/ExecutionEngine/Orc/MemoryMapper.cpp

  Log Message:
  -----------
  [Orc] Provide correct Reservation address for slab allocations

When slab allocator is used, the MappingBase is not necessarily
the same as the original reservation base as the allocation could
be a part of the whole reservation.

In this case the original reservation address needs to be passed to
ExecutorSharedMemoryMapperService to associate the new allocation
with the original reservation.

Differential Revision: https://reviews.llvm.org/D132313


  Commit: e309f5ebc0d7b9e5b057030643d9042acd5edaec
      https://github.com/llvm/llvm-project/commit/e309f5ebc0d7b9e5b057030643d9042acd5edaec
  Author: Anubhab Ghosh <anubhabghosh.me at gmail.com>
  Date:   2022-08-21 (Sun, 21 Aug 2022)

  Changed paths:
    M llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.cpp

  Log Message:
  -----------
  [Orc] Improve deintialize and shutdown logic

When deinitializing, the allocation needs to be removed from the
allocation list of its associated reservation so that remaining
allocations can be deinitialized when releasing the reservation.

Differential Revision: https://reviews.llvm.org/D132313


Compare: https://github.com/llvm/llvm-project/compare/883538f47272...e309f5ebc0d7


More information about the All-commits mailing list