ghc-events-0.2.0.1: Library and tool for parsing .eventlog files from GHCSource codeContentsIndex
GHC.RTS.Events
Contents
The event log types
Reading an event log from a file
Utilities
Printing
Synopsis
data EventLog = EventLog {
header :: Header
dat :: Data
}
data EventType = EventType {
num :: EventTypeNum
desc :: EventTypeDesc
size :: Maybe EventTypeSize
}
data Event = Event {
time :: !Timestamp
spec :: EventTypeSpecificInfo
}
data EventTypeSpecificInfo
= Startup {
n_caps :: Int
}
| EventBlock {
end_time :: Timestamp
cap :: Int
block_events :: [Event]
}
| CreateThread {
thread :: !ThreadId
}
| RunThread {
thread :: !ThreadId
}
| StopThread {
thread :: !ThreadId
status :: ThreadStopStatus
}
| ThreadRunnable {
thread :: !ThreadId
}
| MigrateThread {
thread :: !ThreadId
newCap :: !Int
}
| RunSpark {
thread :: !ThreadId
}
| StealSpark {
thread :: !ThreadId
victimCap :: !Int
}
| CreateSparkThread {
sparkThread :: !ThreadId
}
| WakeupThread {
thread :: !ThreadId
otherCap :: !Int
}
| Shutdown {
}
| RequestSeqGC {
}
| RequestParGC {
}
| StartGC {
}
| GCWork {
}
| GCIdle {
}
| GCDone {
}
| EndGC {
}
| Message {
msg :: String
}
| UserMessage {
msg :: String
}
| UnknownEvent {
ref :: !EventTypeNum
}
data ThreadStopStatus
= NoStatus
| HeapOverflow
| StackOverflow
| ThreadYielding
| ThreadBlocked
| ThreadFinished
| ForeignCall
newtype Header = Header {
eventTypes :: [EventType]
}
data Data = Data {
events :: [Event]
}
type Timestamp = Word64
type ThreadId = Word32
readEventLogFromFile :: FilePath -> IO (Either String EventLog)
data CapEvent = CapEvent {
ce_cap :: Maybe Int
ce_event :: Event
}
sortEvents :: [Event] -> [CapEvent]
groupEvents :: [Event] -> [(Maybe Int, [Event])]
sortGroups :: [(Maybe Int, [Event])] -> [CapEvent]
showEventTypeSpecificInfo :: EventTypeSpecificInfo -> String
showThreadStopStatus :: ThreadStopStatus -> String
The event log types
data EventLog Source
Constructors
EventLog
header :: Header
dat :: Data
data EventType Source
Constructors
EventType
num :: EventTypeNum
desc :: EventTypeDesc
size :: Maybe EventTypeSizeNothing indicates variable size
data Event Source
Constructors
Event
time :: !Timestamp
spec :: EventTypeSpecificInfo
data EventTypeSpecificInfo Source
Constructors
Startup
n_caps :: Int
EventBlock
end_time :: Timestamp
cap :: Int
block_events :: [Event]
CreateThread
thread :: !ThreadId
RunThread
thread :: !ThreadId
StopThread
thread :: !ThreadId
status :: ThreadStopStatus
ThreadRunnable
thread :: !ThreadId
MigrateThread
thread :: !ThreadId
newCap :: !Int
RunSpark
thread :: !ThreadId
StealSpark
thread :: !ThreadId
victimCap :: !Int
CreateSparkThread
sparkThread :: !ThreadId
WakeupThread
thread :: !ThreadId
otherCap :: !Int
Shutdown
RequestSeqGC
RequestParGC
StartGC
GCWork
GCIdle
GCDone
EndGC
Message
msg :: String
UserMessage
msg :: String
UnknownEvent
ref :: !EventTypeNum
data ThreadStopStatus Source
Constructors
NoStatus
HeapOverflow
StackOverflow
ThreadYielding
ThreadBlocked
ThreadFinished
ForeignCall
newtype Header Source
Constructors
Header
eventTypes :: [EventType]
data Data Source
Constructors
Data
events :: [Event]
type Timestamp = Word64Source
type ThreadId = Word32Source
Reading an event log from a file
readEventLogFromFile :: FilePath -> IO (Either String EventLog)Source
Utilities
data CapEvent Source
An event annotated with the Capability that generated it, if any
Constructors
CapEvent
ce_cap :: Maybe Int
ce_event :: Event
sortEvents :: [Event] -> [CapEvent]Source
groupEvents :: [Event] -> [(Maybe Int, [Event])]Source
sortGroups :: [(Maybe Int, [Event])] -> [CapEvent]Source
Sort the raw event stream by time, annotating each event with the capability that generated it.
Printing
showEventTypeSpecificInfo :: EventTypeSpecificInfo -> StringSource
showThreadStopStatus :: ThreadStopStatus -> StringSource
Produced by Haddock version 2.6.0