Introduce stack snapshotting / cloning (#18741)
Add `StackSnapshot#` primitive type that represents a cloned stack (StgStack). The cloning interface consists of two functions, that clone either the treads own stack (cloneMyStack) or another threads stack (cloneThreadStack). The stack snapshot is offline/cold, i.e. it isn't evaluated any further. This is useful for analyses as it prevents concurrent modifications. For technical details, please see Note [Stack Cloning]. Co-authored-by:Ben Gamari <bgamari.foss@gmail.com> Co-authored-by:
Matthew Pickering <matthewtpickering@gmail.com>
Showing
- compiler/GHC/Builtin/Names.hs 2 additions, 1 deletioncompiler/GHC/Builtin/Names.hs
- compiler/GHC/Builtin/Types/Prim.hs 19 additions, 1 deletioncompiler/GHC/Builtin/Types/Prim.hs
- compiler/GHC/Builtin/primops.txt.pp 24 additions, 9 deletionscompiler/GHC/Builtin/primops.txt.pp
- compiler/GHC/StgToCmm/Prim.hs 1 addition, 0 deletionscompiler/GHC/StgToCmm/Prim.hs
- libraries/base/GHC/Stack/CloneStack.hs 154 additions, 0 deletionslibraries/base/GHC/Stack/CloneStack.hs
- libraries/base/base.cabal 1 addition, 0 deletionslibraries/base/base.cabal
- rts/CloneStack.c 103 additions, 0 deletionsrts/CloneStack.c
- rts/CloneStack.h 23 additions, 0 deletionsrts/CloneStack.h
- rts/Messages.c 7 additions, 1 deletionrts/Messages.c
- rts/PrimOps.cmm 11 additions, 0 deletionsrts/PrimOps.cmm
- rts/RtsSymbols.c 3 additions, 0 deletionsrts/RtsSymbols.c
- rts/StgMiscClosures.cmm 3 additions, 0 deletionsrts/StgMiscClosures.cmm
- rts/include/rts/storage/Closures.h 8 additions, 0 deletionsrts/include/rts/storage/Closures.h
- rts/include/stg/MiscClosures.h 2 additions, 0 deletionsrts/include/stg/MiscClosures.h
- rts/package.conf.in 2 additions, 0 deletionsrts/package.conf.in
- rts/rts.cabal.in 3 additions, 0 deletionsrts/rts.cabal.in
- testsuite/tests/profiling/should_run/T7275.stdout 16 additions, 16 deletionstestsuite/tests/profiling/should_run/T7275.stdout
- testsuite/tests/rts/all.T 5 additions, 0 deletionstestsuite/tests/rts/all.T
- testsuite/tests/rts/cloneMyStack.hs 29 additions, 0 deletionstestsuite/tests/rts/cloneMyStack.hs
- testsuite/tests/rts/cloneMyStack2.hs 15 additions, 0 deletionstestsuite/tests/rts/cloneMyStack2.hs
Loading
Please register or sign in to comment