@@ -10,6 +10,8 @@ using Dagger
10
10
11
11
function logs_to_chrome_trace (logs:: Dict )
12
12
execution_logs = Dict {Int,Any} ()
13
+ tid_to_uid = Dict {Int,UInt} ()
14
+ uid_to_name = Dict {UInt,String} ()
13
15
add_unknown_procs_metadata = false
14
16
Dagger. logs_event_pairs (logs) do w, start_idx, finish_idx
15
17
category = logs[w][:core ][start_idx]. category
@@ -20,9 +22,9 @@ function logs_to_chrome_trace(logs::Dict)
20
22
end
21
23
t_start = logs[w][:core ][start_idx]. timestamp / 1e3 # us
22
24
t_stop = logs[w][:core ][finish_idx]. timestamp / 1e3 # us
23
- proc = logs[w][:id ][start_idx]. processor
24
25
execution_logs[tid][:ts ] = t_start
25
26
execution_logs[tid][:dur ] = t_stop - t_start
27
+ proc = logs[w][:id ][start_idx]. processor
26
28
if proc isa Dagger. ThreadProc
27
29
execution_logs[tid][:pid ] = proc. owner
28
30
execution_logs[tid][:tid ] = proc. tid # thread id
@@ -37,14 +39,37 @@ function logs_to_chrome_trace(logs::Dict)
37
39
if ! haskey (execution_logs, tid)
38
40
execution_logs[tid] = Dict {Symbol,Any} ()
39
41
end
42
+ # auto name
40
43
fname = logs[w][:taskfuncnames ][start_idx]
41
44
execution_logs[tid][:name ] = fname
45
+ # uid-tid mapping for user task name
46
+ if haskey (logs[w], :taskuidtotid )
47
+ uid_tid = logs[w][:taskuidtotid ][start_idx]
48
+ if uid_tid != = nothing
49
+ uid, tid = uid_tid:: Pair{UInt,Int}
50
+ tid_to_uid[tid] = uid
51
+ end
52
+ end
53
+ elseif category == :data_annotation
54
+ # user task name
55
+ id = logs[w][:id ][start_idx]:: NamedTuple
56
+ name = String (id. name)
57
+ obj = id. objectid:: Dagger.LoggedMutableObject
58
+ objid = obj. objid
59
+ uid_to_name[objid] = name
42
60
end
43
61
end
44
62
events = Vector {Dict{Symbol,Any}} ()
45
- for (_ , v) in execution_logs
63
+ for (tid , v) in execution_logs
46
64
v[:ph ] = " X"
47
65
v[:cat ] = " compute"
66
+ # replace auto name with user task name if present
67
+ if haskey (tid_to_uid, tid)
68
+ uid = tid_to_uid[tid]
69
+ if haskey (uid_to_name, uid)
70
+ v[:name ] = uid_to_name[uid]
71
+ end
72
+ end
48
73
push! (events, v)
49
74
end
50
75
if add_unknown_procs_metadata
0 commit comments