-
- Downloads
Add a write barrier for TVAR closures
This improves GC performance when there are a lot of TVars in the heap. For instance, a TChan with a lot of elements causes a massive GC drag without this patch. There's more to do - several other STM closure types don't have write barriers, so GC performance when there are a lot of threads blocked on STM isn't great. But fixing the problem for TVar is a good start.
Showing
- includes/rts/storage/ClosureTypes.h 19 additions, 18 deletionsincludes/rts/storage/ClosureTypes.h
- includes/stg/MiscClosures.h 2 additions, 1 deletionincludes/stg/MiscClosures.h
- rts/ClosureFlags.c 3 additions, 2 deletionsrts/ClosureFlags.c
- rts/Exception.cmm 1 addition, 1 deletionrts/Exception.cmm
- rts/LdvProfile.c 1 addition, 0 deletionsrts/LdvProfile.c
- rts/Linker.c 3 additions, 0 deletionsrts/Linker.c
- rts/PrimOps.cmm 1 addition, 1 deletionrts/PrimOps.cmm
- rts/Printer.c 14 additions, 0 deletionsrts/Printer.c
- rts/ProfHeap.c 2 additions, 1 deletionrts/ProfHeap.c
- rts/RetainerProfile.c 4 additions, 1 deletionrts/RetainerProfile.c
- rts/STM.c 38 additions, 25 deletionsrts/STM.c
- rts/STM.h 1 addition, 1 deletionrts/STM.h
- rts/Schedule.c 1 addition, 1 deletionrts/Schedule.c
- rts/StgMiscClosures.cmm 5 additions, 2 deletionsrts/StgMiscClosures.cmm
- rts/sm/Compact.c 1 addition, 0 deletionsrts/sm/Compact.c
- rts/sm/Evac.c 5 additions, 7 deletionsrts/sm/Evac.c
- rts/sm/GC.c 20 additions, 2 deletionsrts/sm/GC.c
- rts/sm/GC.h 7 additions, 1 deletionrts/sm/GC.h
- rts/sm/Sanity.c 1 addition, 0 deletionsrts/sm/Sanity.c
- rts/sm/Scav.c 69 additions, 4 deletionsrts/sm/Scav.c
Loading
Please register or sign in to comment