ghc-events
ghc-events copied to clipboard
Library and tool for parsing .eventlog files from GHC
I had some trouble getting correct `eventlog2html` output from an eventlog created by a simple `ghc-events`-based filtering script I wrote. This PR contains the `ghc-events` fixes that I used to...
The eventlog is structured as a list of blocks of events. A block has a capability number that specifies the capability of upcoming events, and some information about when the...
While writing an analysis tool, the need for sorting the events in an eventlog file arose. The problem with the existing `GHC.RTS.Events.sortEvents` is that it is not memory bounded, leading...
The project currently has its own copy of `EventLogFormat.h` that ships with GHC. This strikes me as an unfortunate situation: if the upstream version of that file as found in...
I think the first field of `ProfSampleCostCentre ` should be `profCap :: !CapNo` instead of `profCapset :: !Capset`. https://github.com/haskell/ghc-events/blob/0fb2c177b781f505b04472511f2e2f2c6c1ae021/src/GHC/RTS/EventTypes.hs#L437-L442 https://github.com/haskell/ghc-events/blob/85b91298a28e69b0bd9d4ffb8f1de4138e4f93a2/src/GHC/RTS/Events/Binary.hs#L895-L914 https://github.com/ghc/ghc/blob/73b22ff196160036ac10b762bf3a363fa8a451ad/rts/eventlog/EventLog.c#L1317-L1340 has ``` void postProfSampleCostCentre(Capability *cap, CostCentreStack *stack, StgWord64 tick)...
The eventlog file uploaded by @Unselfish at https://github.com/haskell/ThreadScope/issues/108#issuecomment-602936002 causes `ghc-events inc` to fail: ``` ghc-events: Ix{Int}.index: Index (23637) out of range ((0,164)) ``` It was produced with GHC 8.6.5 on...
I think we should add CONTRIBUTING.md which suggests that every new event support should be accompanied by a small example eventlog and its expected `ghc-events show` output.
This introduces an interface providing constant-space sorting of eventlogs via on-disk merge-sort. I have confirmed that the implementation indeed maintains constant-space behavior, requiring about 79s seconds to sort a 200MB...
In 8.8, the eventlog now also emits the stack size when the stack overflows. This change needs to be reflected in `ghc-events`. https://gitlab.haskell.org/ghc/ghc/commit/7e570676bd0a57f8a77e5577d9f27e2d3159193e