• Ben Gamari's avatar
    rts/NonMovingSweep: Fix locking of new mutable list allocation · a7a4efbf
    Ben Gamari authored
    Previously we used allocBlockOnNode_sync in nonmovingSweepMutLists
    despite the fact that we aren't in the GC and therefore the allocation
    spinlock isn't in use. This meant that sweep would end up spinning until
    the next minor GC, when the SM lock was moved away from the SM_MUTEX to
    the spinlock. This isn't a correctness issue but it sure isn't good for
    performance.
    
    Found thanks for Ward.
    
    Fixes #17539.
    a7a4efbf
Name
Last commit
Last update
..
eventlog Loading commit data...
hooks Loading commit data...
linker Loading commit data...
posix Loading commit data...
sm Loading commit data...
win32 Loading commit data...
.dir-locals.el Loading commit data...
Adjustor.c Loading commit data...
AdjustorAsm.S Loading commit data...
Apply.cmm Loading commit data...
Apply.h Loading commit data...
Arena.c Loading commit data...
Arena.h Loading commit data...
AutoApply.h Loading commit data...
AwaitEvent.h Loading commit data...
BeginPrivate.h Loading commit data...
Capability.c Loading commit data...
Capability.h Loading commit data...
CheckUnload.c Loading commit data...
CheckUnload.h Loading commit data...
ClosureFlags.c Loading commit data...
Compact.cmm Loading commit data...
Disassembler.c Loading commit data...
Disassembler.h Loading commit data...
EndPrivate.h Loading commit data...
Exception.cmm Loading commit data...
Excn.h Loading commit data...
FileLock.c Loading commit data...
FileLock.h Loading commit data...
GetEnv.h Loading commit data...
GetTime.h Loading commit data...
Globals.c Loading commit data...
Globals.h Loading commit data...
Hash.c Loading commit data...
Hash.h Loading commit data...
Heap.c Loading commit data...
HeapStackCheck.cmm Loading commit data...
Hpc.c Loading commit data...
HsFFI.c Loading commit data...
Inlines.c Loading commit data...
Interpreter.c Loading commit data...
Interpreter.h Loading commit data...
LdvProfile.c Loading commit data...
LdvProfile.h Loading commit data...
Libdw.c Loading commit data...
Libdw.h Loading commit data...
LibdwPool.c Loading commit data...
LibdwPool.h Loading commit data...
Linker.c Loading commit data...
LinkerInternals.h Loading commit data...
Makefile Loading commit data...
Messages.c Loading commit data...
Messages.h Loading commit data...
OldARMAtomic.c Loading commit data...
PathUtils.c Loading commit data...
PathUtils.h Loading commit data...
Pool.c Loading commit data...
Pool.h Loading commit data...
PosixSource.h Loading commit data...
Prelude.h Loading commit data...
PrimOps.cmm Loading commit data...
Printer.c Loading commit data...
Printer.h Loading commit data...
ProfHeap.c Loading commit data...
ProfHeap.h Loading commit data...
ProfilerReport.c Loading commit data...
ProfilerReport.h Loading commit data...
ProfilerReportJson.c Loading commit data...
ProfilerReportJson.h Loading commit data...
Profiling.c Loading commit data...
Profiling.h Loading commit data...
Proftimer.c Loading commit data...
Proftimer.h Loading commit data...
RaiseAsync.c Loading commit data...
RaiseAsync.h Loading commit data...
RetainerProfile.c Loading commit data...
RetainerProfile.h Loading commit data...
RetainerSet.c Loading commit data...
RetainerSet.h Loading commit data...
RtsAPI.c Loading commit data...
RtsDllMain.c Loading commit data...
RtsDllMain.h Loading commit data...
RtsFlags.c Loading commit data...
RtsFlags.h Loading commit data...
RtsMain.c Loading commit data...
RtsMessages.c Loading commit data...
RtsProbes.d Loading commit data...
RtsSignals.h Loading commit data...
RtsStartup.c Loading commit data...
RtsSymbolInfo.c Loading commit data...
RtsSymbolInfo.h Loading commit data...
RtsSymbols.c Loading commit data...
RtsSymbols.h Loading commit data...
RtsUtils.c Loading commit data...
RtsUtils.h Loading commit data...
SMPClosureOps.h Loading commit data...
STM.c Loading commit data...
STM.h Loading commit data...
Schedule.c Loading commit data...
Schedule.h Loading commit data...
Sparks.c Loading commit data...
Sparks.h Loading commit data...
StableName.c Loading commit data...
StableName.h Loading commit data...
StablePtr.c Loading commit data...
StablePtr.h Loading commit data...
StaticPtrTable.c Loading commit data...
StaticPtrTable.h Loading commit data...
Stats.c Loading commit data...
Stats.h Loading commit data...
StgCRun.c Loading commit data...
StgCRunAsm.S Loading commit data...
StgMiscClosures.cmm Loading commit data...
StgPrimFloat.c Loading commit data...
StgPrimFloat.h Loading commit data...
StgRun.h Loading commit data...
StgStartup.cmm Loading commit data...
StgStdThunks.cmm Loading commit data...
Task.c Loading commit data...
Task.h Loading commit data...
ThreadLabels.c Loading commit data...
ThreadLabels.h Loading commit data...
ThreadPaused.c Loading commit data...
ThreadPaused.h Loading commit data...
Threads.c Loading commit data...
Threads.h Loading commit data...
Ticker.h Loading commit data...
Ticky.c Loading commit data...
Ticky.h Loading commit data...
Timer.c Loading commit data...
Timer.h Loading commit data...
TopHandler.c Loading commit data...
TopHandler.h Loading commit data...
Trace.c Loading commit data...
Trace.h Loading commit data...
TraverseHeap.c Loading commit data...
TraverseHeap.h Loading commit data...
Updates.cmm Loading commit data...
Updates.h Loading commit data...
WSDeque.c Loading commit data...
WSDeque.h Loading commit data...
Weak.c Loading commit data...
Weak.h Loading commit data...
fs_rts.h Loading commit data...
ghc.mk Loading commit data...
package.conf.in Loading commit data...
rts.cabal.in Loading commit data...
xxhash.c Loading commit data...
xxhash.h Loading commit data...