Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
GHC
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
0
Merge Requests
0
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Tobias Decking
GHC
Commits
b5a73581
Commit
b5a73581
authored
Apr 23, 2009
by
Simon Marlow
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add EVENT_CREATE_SPARK_THREAD to replace EVENT_SPARK_TO_THREAD
Also some tidyups and renaming
parent
2b569f55
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
33 additions
and
41 deletions
+33
-41
includes/EventLogFormat.h
includes/EventLogFormat.h
+20
-19
rts/Sparks.c
rts/Sparks.c
+1
-6
rts/eventlog/EventLog.c
rts/eventlog/EventLog.c
+12
-16
No files found.
includes/EventLogFormat.h
View file @
b5a73581
...
...
@@ -96,23 +96,24 @@
/*
* Types of event
*/
#define EVENT_CREATE_THREAD 0
/* (cap, thread) */
#define EVENT_RUN_THREAD 1
/* (cap, thread) */
#define EVENT_STOP_THREAD 2
/* (cap, thread, status) */
#define EVENT_THREAD_RUNNABLE 3
/* (cap, thread) */
#define EVENT_MIGRATE_THREAD 4
/* (cap, thread, new_cap) */
#define EVENT_RUN_SPARK 5
/* (cap, thread) */
#define EVENT_STEAL_SPARK 6
/* (cap, thread, victim_cap) */
#define EVENT_SHUTDOWN 7
/* (cap) */
#define EVENT_THREAD_WAKEUP 8
/* (cap, thread, other_cap) */
#define EVENT_GC_START 9
/* (cap) */
#define EVENT_GC_END 10
/* (cap) */
#define EVENT_REQUEST_SEQ_GC 11
/* (cap) */
#define EVENT_REQUEST_PAR_GC 12
/* (cap) */
#define EVENT_CREATE_SPARK 13
/* (cap, thread) */
#define EVENT_SPARK_TO_THREAD 14
/* (cap, thread, spark_thread) */
#define EVENT_CREATE_THREAD 0
/* (cap, thread) */
#define EVENT_RUN_THREAD 1
/* (cap, thread) */
#define EVENT_STOP_THREAD 2
/* (cap, thread, status) */
#define EVENT_THREAD_RUNNABLE 3
/* (cap, thread) */
#define EVENT_MIGRATE_THREAD 4
/* (cap, thread, new_cap) */
#define EVENT_RUN_SPARK 5
/* (cap, thread) */
#define EVENT_STEAL_SPARK 6
/* (cap, thread, victim_cap) */
#define EVENT_SHUTDOWN 7
/* (cap) */
#define EVENT_THREAD_WAKEUP 8
/* (cap, thread, other_cap) */
#define EVENT_GC_START 9
/* (cap) */
#define EVENT_GC_END 10
/* (cap) */
#define EVENT_REQUEST_SEQ_GC 11
/* (cap) */
#define EVENT_REQUEST_PAR_GC 12
/* (cap) */
#define EVENT_CREATE_SPARK 13
/* (cap, thread) */
#define EVENT_SPARK_TO_THREAD 14
/* DEPRECATED! (cap, thread, spark_thread) */
#define EVENT_CREATE_SPARK_THREAD 15
/* (cap, thread, spark_thread) */
#define NUM_EVENT_TAGS 1
5
#define NUM_EVENT_TAGS 1
6
/*
* Status values for EVENT_STOP_THREAD
...
...
@@ -130,8 +131,8 @@
#ifndef EVENTLOG_CONSTANTS_ONLY
typedef
StgWord16
EventTypeNum
;
typedef
StgWord64
Timestamp
;
// in nanoseconds
typedef
Stg
ThreadID
ThreadID
;
typedef
StgWord16
CapNo
;
typedef
StgWord64
Event
Timestamp
;
// in nanoseconds
typedef
Stg
Word64
Event
ThreadID
;
typedef
StgWord16
Event
CapNo
;
#endif
rts/Sparks.c
View file @
b5a73581
...
...
@@ -58,12 +58,7 @@ createSparkThread (Capability *cap)
tso
=
createIOThread
(
cap
,
RtsFlags
.
GcFlags
.
initialStkSize
,
&
base_GHCziConc_runSparks_closure
);
if
(
cap
->
r
.
rCurrentTSO
!=
NULL
)
// Capability in a bound thread?
postEvent
(
cap
,
EVENT_SPARK_TO_THREAD
,
cap
->
r
.
rCurrentTSO
->
id
,
tso
->
id
);
else
// Capability in a worker thread?
postEvent
(
cap
,
EVENT_SPARK_TO_THREAD
,
0
,
tso
->
id
);
postEvent
(
cap
,
EVENT_CREATE_SPARK_THREAD
,
0
,
tso
->
id
);
appendToRunQueue
(
cap
,
tso
);
}
...
...
rts/eventlog/EventLog.c
View file @
b5a73581
...
...
@@ -50,7 +50,8 @@ char *EventDesc[] = {
"Request sequential GC"
,
"Request parallel GC"
,
"Create spark"
,
"Spark to thread"
"Spark to thread"
,
/* DEPRECATED! */
"Create spark thread"
};
// Event type.
...
...
@@ -106,13 +107,13 @@ static inline void postWord64(EventsBuf *eb, StgWord64 i)
static
inline
void
postEventTypeNum
(
EventsBuf
*
eb
,
EventTypeNum
etNum
)
{
postWord16
(
eb
,
etNum
);
}
static
inline
void
postTimestamp
(
EventsBuf
*
eb
,
Timestamp
t
)
static
inline
void
postTimestamp
(
EventsBuf
*
eb
,
Event
Timestamp
t
)
{
postWord64
(
eb
,
t
);
}
static
inline
void
postThreadID
(
EventsBuf
*
eb
,
ThreadID
id
)
static
inline
void
postThreadID
(
EventsBuf
*
eb
,
Event
ThreadID
id
)
{
postWord32
(
eb
,
id
);
}
static
inline
void
postCapNo
(
EventsBuf
*
eb
,
CapNo
no
)
static
inline
void
postCapNo
(
EventsBuf
*
eb
,
Event
CapNo
no
)
{
postWord16
(
eb
,
no
);
}
static
inline
void
postInt8
(
EventsBuf
*
eb
,
StgInt8
i
)
...
...
@@ -183,24 +184,20 @@ initEventLogging(void)
case
EVENT_THREAD_RUNNABLE
:
// (cap, thread)
case
EVENT_CREATE_SPARK
:
// (cap, thread)
case
EVENT_RUN_SPARK
:
// (cap, thread)
eventTypes
[
t
].
size
=
sizeof
(
CapNo
)
+
sizeof
(
ThreadID
);
break
;
case
EVENT_SPARK_TO_THREAD
:
// (cap, thread, spark_thread)
eventTypes
[
t
].
size
=
sizeof
(
CapNo
)
+
sizeof
(
ThreadID
)
+
sizeof
(
ThreadID
);
case
EVENT_CREATE_SPARK_THREAD
:
// (cap, spark_thread)
eventTypes
[
t
].
size
=
sizeof
(
EventCapNo
)
+
sizeof
(
EventThreadID
);
break
;
case
EVENT_MIGRATE_THREAD
:
// (cap, thread, new_cap)
case
EVENT_STEAL_SPARK
:
// (cap, thread, victim_cap)
case
EVENT_THREAD_WAKEUP
:
// (cap, thread, other_cap)
eventTypes
[
t
].
size
=
sizeof
(
CapNo
)
+
sizeof
(
ThreadID
)
+
sizeof
(
CapNo
);
sizeof
(
EventCapNo
)
+
sizeof
(
EventThreadID
)
+
sizeof
(
Event
CapNo
);
break
;
case
EVENT_STOP_THREAD
:
// (cap, thread, status)
eventTypes
[
t
].
size
=
sizeof
(
CapNo
)
+
sizeof
(
ThreadID
)
+
sizeof
(
StgWord16
);
sizeof
(
EventCapNo
)
+
sizeof
(
Event
ThreadID
)
+
sizeof
(
StgWord16
);
break
;
case
EVENT_SHUTDOWN
:
// (cap)
...
...
@@ -208,7 +205,7 @@ initEventLogging(void)
case
EVENT_REQUEST_PAR_GC
:
// (cap)
case
EVENT_GC_START
:
// (cap)
case
EVENT_GC_END
:
// (cap)
eventTypes
[
t
].
size
=
sizeof
(
CapNo
);
eventTypes
[
t
].
size
=
sizeof
(
Event
CapNo
);
break
;
}
...
...
@@ -315,9 +312,8 @@ postEvent_(Capability *cap, EventTypeNum tag, StgThreadID thread, StgWord64 othe
break
;
}
case
EVENT_
SPARK_TO_THREAD
:
// (cap, thread
, spark_thread)
case
EVENT_
CREATE_SPARK_THREAD
:
// (cap
, spark_thread)
{
postThreadID
(
eb
,
thread
);
postThreadID
(
eb
,
other
/* spark_thread */
);
break
;
}
...
...
@@ -445,7 +441,7 @@ StgBool hasRoomForEvent(EventsBuf *eb, EventTypeNum eNum)
{
nat
size
=
0
;
size
+=
sizeof
(
EventTypeNum
)
+
sizeof
(
Timestamp
)
+
eventTypes
[
eNum
].
size
;
size
+=
sizeof
(
EventTypeNum
)
+
sizeof
(
Event
Timestamp
)
+
eventTypes
[
eNum
].
size
;
if
(
eb
->
pos
+
size
>
eb
->
begin
+
eb
->
size
)
{
return
0
;
// Not enough space.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment