Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell98 |
- data EventLog = EventLog {}
- data EventType = EventType {}
- data Event = Event {}
- data EventInfo
- = EventBlock { }
- | UnknownEvent {
- ref :: !EventTypeNum
- | Startup { }
- | Shutdown {
- | CreateThread { }
- | RunThread { }
- | StopThread {
- thread :: !ThreadId
- status :: ThreadStopStatus
- | ThreadRunnable { }
- | MigrateThread { }
- | WakeupThread { }
- | ThreadLabel {
- thread :: !ThreadId
- threadlabel :: String
- | CreateSparkThread {
- sparkThread :: !ThreadId
- | SparkCounters {
- sparksCreated :: !Word64
- sparksDud :: !Word64
- sparksOverflowed :: !Word64
- sparksConverted :: !Word64
- sparksFizzled :: !Word64
- sparksGCd :: !Word64
- sparksRemaining :: !Word64
- | SparkCreate {
- | SparkDud {
- | SparkOverflow {
- | SparkRun {
- | SparkSteal { }
- | SparkFizzle {
- | SparkGC {
- | TaskCreate { }
- | TaskMigrate { }
- | TaskDelete { }
- | RequestSeqGC {
- | RequestParGC {
- | StartGC {
- | GCWork {
- | GCIdle {
- | GCDone {
- | EndGC {
- | GlobalSyncGC {
- | GCStatsGHC {
- heapCapset :: !Capset
- gen :: !Int
- copied :: !Word64
- slop :: !Word64
- frag :: !Word64
- parNThreads :: !Int
- parMaxCopied :: !Word64
- parTotCopied :: !Word64
- | HeapAllocated {
- heapCapset :: !Capset
- allocBytes :: !Word64
- | HeapSize {
- heapCapset :: !Capset
- sizeBytes :: !Word64
- | HeapLive {
- heapCapset :: !Capset
- liveBytes :: !Word64
- | HeapInfoGHC {
- heapCapset :: !Capset
- gens :: !Int
- maxHeapSize :: !Word64
- allocAreaSize :: !Word64
- mblockSize :: !Word64
- blockSize :: !Word64
- | CapCreate { }
- | CapDelete { }
- | CapDisable { }
- | CapEnable { }
- | CapsetCreate {
- capset :: !Capset
- capsetType :: CapsetType
- | CapsetDelete {
- capset :: !Capset
- | CapsetAssignCap { }
- | CapsetRemoveCap { }
- | RtsIdentifier { }
- | ProgramArgs { }
- | ProgramEnv { }
- | OsProcessPid { }
- | OsProcessParentPid { }
- | WallClockTime { }
- | Message { }
- | UserMessage { }
- | UserMarker {
- markername :: String
- | InternString { }
- | MerStartParConjunction { }
- | MerEndParConjunction {
- dyn_id :: !ParConjDynId
- | MerEndParConjunct {
- dyn_id :: !ParConjDynId
- | MerCreateSpark { }
- | MerFutureCreate { }
- | MerFutureWaitNosuspend {
- future_id :: !FutureId
- | MerFutureWaitSuspended {
- future_id :: !FutureId
- | MerFutureSignal {
- future_id :: !FutureId
- | MerLookingForGlobalThread
- | MerWorkStealing
- | MerLookingForLocalSpark
- | MerReleaseThread { }
- | MerCapSleeping
- | MerCallingMain
- | PerfName { }
- | PerfCounter {
- perfNum :: !PerfEventTypeNum
- tid :: !KernelThreadId
- period :: !Word64
- | PerfTracepoint {
- perfNum :: !PerfEventTypeNum
- tid :: !KernelThreadId
- data ThreadStopStatus
- = NoStatus
- | HeapOverflow
- | StackOverflow
- | ThreadYielding
- | ThreadBlocked
- | ThreadFinished
- | ForeignCall
- | BlockedOnMVar
- | BlockedOnBlackHole
- | BlockedOnRead
- | BlockedOnWrite
- | BlockedOnDelay
- | BlockedOnSTM
- | BlockedOnDoProc
- | BlockedOnCCall
- | BlockedOnCCall_NoUnblockExc
- | BlockedOnMsgThrowTo
- | ThreadMigrating
- | BlockedOnMsgGlobalise
- | BlockedOnBlackHoleOwnedBy !ThreadId
- newtype Header = Header {
- eventTypes :: [EventType]
- data Data = Data {}
- data CapsetType
- type Timestamp = Word64
- type ThreadId = Word32
- type TaskId = Word64
- newtype KernelThreadId = KernelThreadId {}
- readEventLogFromFile :: FilePath -> IO (Either String EventLog)
- writeEventLogToFile :: FilePath -> EventLog -> IO ()
- data CapEvent = CapEvent {}
- sortEvents :: [Event] -> [CapEvent]
- groupEvents :: [Event] -> [(Maybe Int, [Event])]
- sortGroups :: [(Maybe Int, [Event])] -> [CapEvent]
- buildEventTypeMap :: [EventType] -> IntMap EventType
- showEventInfo :: EventInfo -> String
- showThreadStopStatus :: ThreadStopStatus -> String
- ppEventLog :: EventLog -> String
- ppEventType :: EventType -> String
- ppEvent :: IntMap EventType -> CapEvent -> String
- nEVENT_PERF_NAME :: EventTypeNum
- nEVENT_PERF_COUNTER :: EventTypeNum
- nEVENT_PERF_TRACEPOINT :: EventTypeNum
- sz_perf_num :: EventTypeSize
- sz_kernel_tid :: EventTypeSize
The event log types
data ThreadStopStatus Source
newtype KernelThreadId Source
Reading and writing event logs
writeEventLogToFile :: FilePath -> EventLog -> IO () Source
Utilities
An event annotated with the Capability that generated it, if any
sortEvents :: [Event] -> [CapEvent] Source
sortGroups :: [(Maybe Int, [Event])] -> [CapEvent] Source
Sort the raw event stream by time, annotating each event with the capability that generated it.
buildEventTypeMap :: [EventType] -> IntMap EventType Source
Printing
showEventInfo :: EventInfo -> String Source
ppEventLog :: EventLog -> String Source
ppEventType :: EventType -> String Source
Perf events
nEVENT_PERF_NAME :: EventTypeNum Source
nEVENT_PERF_COUNTER :: EventTypeNum Source
nEVENT_PERF_TRACEPOINT :: EventTypeNum Source
sz_perf_num :: EventTypeSize Source
sz_kernel_tid :: EventTypeSize Source