Skip to content

Commit 7c97d1e

Browse files
committed
Rename module to hierBlock, make it optional
Signed-off-by: Bartłomiej Chmiel <[email protected]>
1 parent fe71802 commit 7c97d1e

File tree

8 files changed

+95
-84
lines changed

8 files changed

+95
-84
lines changed

bin/verilator_gantt

Lines changed: 41 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,9 @@ def read_data(filename):
3737
with open(filename, "r", encoding="utf8") as fh:
3838
re_thread = re.compile(r'^VLPROFTHREAD (\d+)$')
3939
re_record = re.compile(r'^VLPROFEXEC (\S+) (\d+)(.*)$')
40+
# The hierBlock argument is optional
4041
re_payload_mtaskBegin = re.compile(
41-
r'id (\d+) predictStart (\d+) cpu (\d+) module\s*(\w+)?')
42+
r'id (\d+) predictStart (\d+) cpu (\d+)(?: hierBlock)?\s*(\w+)?')
4243
re_payload_mtaskEnd = re.compile(r'predictCost (\d+)')
4344
re_payload_wait = re.compile(r'cpu (\d+)')
4445

@@ -75,8 +76,9 @@ def read_data(filename):
7576
SectionStack.pop()
7677
Sections[thread].append((tick, tuple(SectionStack)))
7778
elif kind == "MTASK_BEGIN":
78-
mtask, predict_start, ecpu, module = re_payload_mtaskBegin.match(
79+
mtask, predict_start, ecpu, hier_block = re_payload_mtaskBegin.match(
7980
payload).groups()
81+
hier_block = "" if hier_block is None else hier_block
8082
mtask = int(mtask)
8183
predict_start = int(predict_start)
8284
ecpu = int(ecpu)
@@ -85,25 +87,26 @@ def read_data(filename):
8587
'start': tick,
8688
'mtask': mtask,
8789
'predict_start': predict_start,
88-
'module': module,
90+
'hier_block': hier_block,
8991
'cpu': ecpu
9092
})
91-
Mtasks[(module, mtask)]['begin'] = tick
92-
Mtasks[(module, mtask)]['predict_start'] = predict_start
93-
Mtasks[(module, mtask)]['thread'] = thread
94-
MtasksStack.append((module, mtask, records[-1]))
93+
Mtasks[(hier_block, mtask)]['begin'] = tick
94+
Mtasks[(hier_block, mtask)]['predict_start'] = predict_start
95+
Mtasks[(hier_block, mtask)]['thread'] = thread
96+
MtasksStack.append((hier_block, mtask, records[-1]))
9597
elif kind == "MTASK_END":
9698
predict_cost, = re_payload_mtaskEnd.match(payload).groups()
9799
mtask = int(mtask)
98-
module, mtask, record = MtasksStack.pop()
100+
hier_block, mtask, record = MtasksStack.pop()
99101
predict_cost = int(predict_cost)
100-
begin = Mtasks[(module, mtask)]['begin']
102+
begin = Mtasks[(hier_block, mtask)]['begin']
101103
record['end'] = tick
102104
assert record and records[-1]['start'] <= records[-1]['end'] <= tick
103105
record['predict_cost'] = predict_cost
104-
Mtasks[(module, mtask)]['elapsed'] += tick - begin
105-
Mtasks[(module, mtask)]['predict_cost'] = predict_cost
106-
Mtasks[(module, mtask)]['end'] = max(Mtasks[(module, mtask)]['end'], tick)
106+
Mtasks[(hier_block, mtask)]['elapsed'] += tick - begin
107+
Mtasks[(hier_block, mtask)]['predict_cost'] = predict_cost
108+
Mtasks[(hier_block, mtask)]['end'] = max(Mtasks[(hier_block, mtask)]['end'],
109+
tick)
107110
elif kind == "THREAD_SCHEDULE_WAIT_BEGIN":
108111
ecpu = int(re_payload_wait.match(payload).groups()[0])
109112
ThreadScheduleWait[ecpu].append(tick)
@@ -237,17 +240,17 @@ def report_mtasks():
237240
long_mtask = None
238241
predict_mtask_time = 0
239242
predict_elapsed = 0
240-
for (module, mtaskId) in Mtasks:
241-
record = Mtasks[(module, mtaskId)]
243+
for (hier_block, mtask_id) in Mtasks:
244+
record = Mtasks[(hier_block, mtask_id)]
242245
predict_mtask_time += record['predict_cost']
243246
total_mtask_time += record['elapsed']
244247
thread_mtask_time[record['thread']] += record['elapsed']
245248
predict_end = record['predict_start'] + record['predict_cost']
246249
predict_elapsed = max(predict_elapsed, predict_end)
247250
if record['elapsed'] > long_mtask_time:
248251
long_mtask_time = record['elapsed']
249-
long_mtask = mtaskId
250-
long_mtask_module = module
252+
long_mtask = mtask_id
253+
long_mtask_hier_block = hier_block
251254
Global['predict_last_end'] = predict_elapsed
252255

253256
serialTime = ElapsedTime - ExecGraphTime
@@ -276,8 +279,8 @@ def report_mtasks():
276279
max_p2e = -1000000
277280
max_mtask = None
278281

279-
for (module, mtaskId) in sorted(Mtasks.keys()):
280-
mtask = Mtasks[(module, mtaskId)]
282+
for (hier_block, mtask_id) in sorted(Mtasks.keys()):
283+
mtask = Mtasks[(hier_block, mtask_id)]
281284
if mtask['elapsed'] > 0:
282285
if mtask['predict_cost'] == 0:
283286
mtask['predict_cost'] = 1 # don't log(0) below
@@ -286,41 +289,42 @@ def report_mtasks():
286289

287290
if p2e_ratio > max_p2e:
288291
max_p2e = p2e_ratio
289-
max_mtask = mtaskId
290-
max_module = module
292+
max_mtask = mtask_id
293+
max_hier_block = hier_block
291294
if p2e_ratio < min_p2e:
292295
min_p2e = p2e_ratio
293-
min_mtask = mtaskId
294-
min_module = module
296+
min_mtask = mtask_id
297+
min_hier_block = hier_block
295298

296299
print("\nMTask statistics:")
297-
if long_mtask_module:
298-
print(" Longest mtask id = {} from module '{}'".format(long_mtask, long_mtask_module))
300+
if long_mtask_hier_block:
301+
print(" Longest mtask id = {} from hier_block '{}'".format(long_mtask,
302+
long_mtask_hier_block))
299303
else:
300304
print(" Longest mtask id = {}".format(long_mtask))
301305
print(" Longest mtask time = {:.2%} of time elapsed in parallelized code".format(
302306
long_mtask_time / ExecGraphTime))
303307
print(" min log(p2e) = %0.3f" % min_p2e, end="")
304308

305-
if min_module:
306-
print(" from module '%s' mtask %d (predict %d," %
307-
(min_module, min_mtask, Mtasks[(min_module, min_mtask)]['predict_cost']),
309+
if min_hier_block:
310+
print(" from hier_block '%s' mtask %d (predict %d," %
311+
(min_hier_block, min_mtask, Mtasks[(min_hier_block, min_mtask)]['predict_cost']),
308312
end="")
309313
else:
310314
print(" from mtask %d (predict %d," %
311-
(min_mtask, Mtasks[(min_module, min_mtask)]['predict_cost']),
315+
(min_mtask, Mtasks[(min_hier_block, min_mtask)]['predict_cost']),
312316
end="")
313-
print(" elapsed %d)" % Mtasks[(min_module, min_mtask)]['elapsed'])
317+
print(" elapsed %d)" % Mtasks[(min_hier_block, min_mtask)]['elapsed'])
314318
print(" max log(p2e) = %0.3f" % max_p2e, end="")
315-
if max_module:
316-
print(" from module '%s' mtask %d (predict %d," %
317-
(max_module, max_mtask, Mtasks[(max_module, max_mtask)]['predict_cost']),
319+
if max_hier_block:
320+
print(" from hier_block '%s' mtask %d (predict %d," %
321+
(max_hier_block, max_mtask, Mtasks[(max_hier_block, max_mtask)]['predict_cost']),
318322
end="")
319323
else:
320324
print(" from mtask %d (predict %d," %
321-
(max_mtask, Mtasks[(max_module, max_mtask)]['predict_cost']),
325+
(max_mtask, Mtasks[(max_hier_block, max_mtask)]['predict_cost']),
322326
end="")
323-
print(" elapsed %d)" % Mtasks[(max_module, max_mtask)]['elapsed'])
327+
print(" elapsed %d)" % Mtasks[(max_hier_block, max_mtask)]['elapsed'])
324328

325329
stddev = statistics.pstdev(p2e_ratios)
326330
mean = statistics.mean(p2e_ratios)
@@ -506,8 +510,8 @@ def write_vcd(filename):
506510
# Compute scale so predicted graph is of same width as interval
507511
measured_scaling = (end - start) / Global['predict_last_end']
508512
# Predict mtasks that fill the time the execution occupied
509-
for (module, mtaskId) in Mtasks:
510-
mtask = Mtasks[(module, mtaskId)]
513+
for (hier_block, mtask_id) in Mtasks:
514+
mtask = Mtasks[(hier_block, mtask_id)]
511515
thread = mtask['thread']
512516
pred_scaled_start = start + int(mtask['predict_start'] * measured_scaling)
513517
pred_scaled_end = start + int(
@@ -516,7 +520,7 @@ def write_vcd(filename):
516520
continue
517521

518522
mcode = getCode(32, 'predicted', 't%d_mtask' % thread)
519-
addValue(mcode, pred_scaled_start, mtaskId)
523+
addValue(mcode, pred_scaled_start, mtask_id)
520524
addValue(mcode, pred_scaled_end, None)
521525

522526
parallelism['predicted'][pred_scaled_start] += 1

include/verilated_profiler.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,13 @@ void VlExecutionProfiler::dump(const char* filenamep, uint64_t tickEnd)
190190
break;
191191
case VlExecutionRecord::Type::MTASK_BEGIN: {
192192
const auto& payload = er.m_payload.mtaskBegin;
193-
fprintf(fp, " id %u predictStart %u cpu %u module %s\n", payload.m_id,
194-
payload.m_predictStart, payload.m_cpu, payload.m_module);
193+
if (payload.m_hierBlock[0] != '\0') {
194+
fprintf(fp, " id %u predictStart %u cpu %u hierBlock %s\n", payload.m_id,
195+
payload.m_predictStart, payload.m_cpu, payload.m_hierBlock);
196+
} else {
197+
fprintf(fp, " id %u predictStart %u cpu %u\n", payload.m_id,
198+
payload.m_predictStart, payload.m_cpu);
199+
}
195200
break;
196201
}
197202
case VlExecutionRecord::Type::MTASK_END: {

include/verilated_profiler.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ class VlExecutionRecord final {
9292
uint32_t m_id; // MTask id
9393
uint32_t m_predictStart; // Time scheduler predicted would start
9494
uint32_t m_cpu; // Executing CPU id
95-
const char* m_module; // Name of module with this mtask
95+
const char* m_hierBlock; // Name of a hier block with this mtask
9696
} mtaskBegin;
9797
struct {
9898
uint32_t m_predictCost; // How long scheduler predicted would take
@@ -120,11 +120,11 @@ class VlExecutionRecord final {
120120
m_type = Type::SECTION_PUSH;
121121
}
122122
void sectionPop() { m_type = Type::SECTION_POP; }
123-
void mtaskBegin(uint32_t id, uint32_t predictStart, const char* moduleName) {
123+
void mtaskBegin(uint32_t id, uint32_t predictStart, const char* hierBlock = "") {
124124
m_payload.mtaskBegin.m_id = id;
125125
m_payload.mtaskBegin.m_predictStart = predictStart;
126126
m_payload.mtaskBegin.m_cpu = VlOs::getcpu();
127-
m_payload.mtaskBegin.m_module = moduleName;
127+
m_payload.mtaskBegin.m_hierBlock = hierBlock;
128128
m_type = Type::MTASK_BEGIN;
129129
}
130130
void mtaskEnd(uint32_t predictCost) {

src/V3ExecGraph.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -920,11 +920,13 @@ void wrapMTaskBodies(AstExecGraph* const execGraphp) {
920920

921921
if (v3Global.opt.profExec()) {
922922
const string& predictStart = std::to_string(mtaskp->predictStart());
923-
// We use top module flag as it is always set for all hierarchical phases, when it is
924-
// not set we assume that it is a non-hierarchical run and we don't need module name
925-
// anyway.
926-
addStrStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).mtaskBegin(taskId, " + predictStart
927-
+ ", \"" + v3Global.opt.topModule() + "\");\n");
923+
if (v3Global.opt.hierChild()) {
924+
addStrStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).mtaskBegin(taskId, " + predictStart
925+
+ ", \"" + v3Global.opt.topModule() + "\");\n");
926+
} else {
927+
addStrStmt("VL_EXEC_TRACE_ADD_RECORD(vlSymsp).mtaskBegin(taskId, " + predictStart
928+
+ ");\n");
929+
}
928930
}
929931

930932
// Set mtask ID in the run-time system

test_regress/t/t_gantt_io.dat

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -902,41 +902,41 @@ VLPROFPROC power management: ts ttp tm hwpstate cpb eff_freq_ro [13] [14]
902902
VLPROFPROC
903903
VLPROFTHREAD 0
904904
VLPROFEXEC EXEC_GRAPH_BEGIN 945
905-
VLPROFEXEC MTASK_BEGIN 2695 id 6 predictStart 0 cpu 19 module top
906-
VLPROFEXEC MTASK_BEGIN 3795 id 10 predictStart 196 cpu 19 module sub
905+
VLPROFEXEC MTASK_BEGIN 2695 id 6 predictStart 0 cpu 19
906+
VLPROFEXEC MTASK_BEGIN 3795 id 10 predictStart 196 cpu 19 hierBlock sub
907907
VLPROFEXEC MTASK_END 4850 predictCost 30
908908
VLPROFEXEC MTASK_END 5905 predictCost 30
909-
VLPROFEXEC MTASK_BEGIN 9695 id 10 predictStart 196 cpu 19 module top
909+
VLPROFEXEC MTASK_BEGIN 9695 id 10 predictStart 196 cpu 19
910910
VLPROFEXEC MTASK_END 9870 predictCost 30
911911
VLPROFEXEC EXEC_GRAPH_END 12180
912912
VLPROFEXEC EXEC_GRAPH_BEGIN 14000
913-
VLPROFEXEC MTASK_BEGIN 15610 id 6 predictStart 0 cpu 19 module top
913+
VLPROFEXEC MTASK_BEGIN 15610 id 6 predictStart 0 cpu 19
914914
VLPROFEXEC MTASK_END 15820 predictCost 30
915915
VLPROFEXEC THREAD_SCHEDULE_WAIT_BEGIN 20000 cpu 19
916916
VLPROFEXEC THREAD_SCHEDULE_WAIT_END 21000 cpu 19
917-
VLPROFEXEC MTASK_BEGIN 21700 id 10 predictStart 196 cpu 19 module top
917+
VLPROFEXEC MTASK_BEGIN 21700 id 10 predictStart 196 cpu 19
918918
VLPROFEXEC MTASK_END 21875 predictCost 30
919919
VLPROFEXEC EXEC_GRAPH_END 22085
920920
VLPROFTHREAD 1
921-
VLPROFEXEC MTASK_BEGIN 5495 id 5 predictStart 0 cpu 10 module top
921+
VLPROFEXEC MTASK_BEGIN 5495 id 5 predictStart 0 cpu 10
922922
VLPROFEXEC MTASK_END 6090 predictCost 30
923-
VLPROFEXEC MTASK_BEGIN 6300 id 7 predictStart 30 cpu 10 module top
923+
VLPROFEXEC MTASK_BEGIN 6300 id 7 predictStart 30 cpu 10
924924
VLPROFEXEC MTASK_END 6895 predictCost 30
925-
VLPROFEXEC MTASK_BEGIN 7490 id 8 predictStart 60 cpu 10 module top
925+
VLPROFEXEC MTASK_BEGIN 7490 id 8 predictStart 60 cpu 10
926926
VLPROFEXEC MTASK_END 8540 predictCost 107
927-
VLPROFEXEC MTASK_BEGIN 9135 id 9 predictStart 167 cpu 10 module top
927+
VLPROFEXEC MTASK_BEGIN 9135 id 9 predictStart 167 cpu 10
928928
VLPROFEXEC MTASK_END 9730 predictCost 30
929-
VLPROFEXEC MTASK_BEGIN 10255 id 11 predictStart 197 cpu 10 module top
929+
VLPROFEXEC MTASK_BEGIN 10255 id 11 predictStart 197 cpu 10
930930
VLPROFEXEC MTASK_END 11060 predictCost 30
931-
VLPROFEXEC MTASK_BEGIN 18375 id 5 predictStart 0 cpu 10 module top
931+
VLPROFEXEC MTASK_BEGIN 18375 id 5 predictStart 0 cpu 10
932932
VLPROFEXEC MTASK_END 18970 predictCost 30
933-
VLPROFEXEC MTASK_BEGIN 19145 id 7 predictStart 30 cpu 10 module top
933+
VLPROFEXEC MTASK_BEGIN 19145 id 7 predictStart 30 cpu 10
934934
VLPROFEXEC MTASK_END 19320 predictCost 30
935-
VLPROFEXEC MTASK_BEGIN 19670 id 8 predictStart 60 cpu 10 module top
935+
VLPROFEXEC MTASK_BEGIN 19670 id 8 predictStart 60 cpu 10
936936
VLPROFEXEC MTASK_END 19810 predictCost 107
937-
VLPROFEXEC MTASK_BEGIN 20650 id 9 predictStart 167 cpu 10 module top
937+
VLPROFEXEC MTASK_BEGIN 20650 id 9 predictStart 167 cpu 10
938938
VLPROFEXEC MTASK_END 20720 predictCost 30
939-
VLPROFEXEC MTASK_BEGIN 21140 id 11 predictStart 197 cpu 10 module top
939+
VLPROFEXEC MTASK_BEGIN 21140 id 11 predictStart 197 cpu 10
940940
VLPROFEXEC MTASK_END 21245 predictCost 30
941941
VLPROFEXEC THREAD_SCHEDULE_WAIT_BEGIN 22000 cpu 10
942942
VLPROFEXEC THREAD_SCHEDULE_WAIT_END 23000 cpu 10

test_regress/t/t_gantt_io.out

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ All code, measured, scaled by predicted speedup:
3333
Speedup = 1.25x
3434

3535
MTask statistics:
36-
Longest mtask id = 6 from module 'top'
36+
Longest mtask id = 6
3737
Longest mtask time = 17.70% of time elapsed in parallelized code
38-
min log(p2e) = -4.736 from module 'top' mtask 6 (predict 30, elapsed 3420)
39-
max log(p2e) = -2.409 from module 'top' mtask 8 (predict 107, elapsed 1190)
38+
min log(p2e) = -4.736 from mtask 6 (predict 30, elapsed 3420)
39+
max log(p2e) = -2.409 from mtask 8 (predict 107, elapsed 1190)
4040
mean = -3.325
4141
stddev = 0.692
4242
e ^ stddev = 1.998

test_regress/t/t_gantt_io_arm.dat

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,19 +46,19 @@ VLPROFPROC CPU revision : 3
4646
VLPROFPROC
4747
VLPROFTHREAD 0
4848
VLPROFEXEC EXEC_GRAPH_BEGIN 58532
49-
VLPROFEXEC MTASK_BEGIN 90465 id 85 predictStart 14315 cpu 2 module
49+
VLPROFEXEC MTASK_BEGIN 90465 id 85 predictStart 14315 cpu 2
5050
VLPROFEXEC MTASK_END 155034 predictCost 30533
51-
VLPROFEXEC MTASK_BEGIN 156555 id 79 predictStart 44848 cpu 2 module
51+
VLPROFEXEC MTASK_BEGIN 156555 id 79 predictStart 44848 cpu 2
5252
VLPROFEXEC MTASK_END 294309 predictCost 48001
5353
VLPROFEXEC THREAD_SCHEDULE_WAIT_BEGIN 295000 cpu 2
5454
VLPROFEXEC THREAD_SCHEDULE_WAIT_END 296000 cpu 2
5555
VLPROFEXEC EXEC_GRAPH_END 300000
5656
VLPROFTHREAD 1
57-
VLPROFEXEC MTASK_BEGIN 77352 id 90 predictStart 14315 cpu 3 module
57+
VLPROFEXEC MTASK_BEGIN 77352 id 90 predictStart 14315 cpu 3
5858
VLPROFEXEC MTASK_END 78511 predictCost 21592
59-
VLPROFEXEC MTASK_BEGIN 79799 id 81 predictStart 35907 cpu 3 module
59+
VLPROFEXEC MTASK_BEGIN 79799 id 81 predictStart 35907 cpu 3
6060
VLPROFEXEC MTASK_END 80667 predictCost 29215
61-
VLPROFEXEC MTASK_BEGIN 81746 id 87 predictStart 65147 cpu 3 module
61+
VLPROFEXEC MTASK_BEGIN 81746 id 87 predictStart 65147 cpu 3
6262
VLPROFEXEC MTASK_END 82633 predictCost 33809
6363
VLPROFEXEC THREAD_SCHEDULE_WAIT_BEGIN 83000 cpu 3
6464
VLPROFEXEC THREAD_SCHEDULE_WAIT_END 84000 cpu 3

test_regress/t/t_gantt_io_noproc.dat

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,40 +5,40 @@ VLPROF stat threads 2
55
VLPROF stat yields 0
66
VLPROFTHREAD 0
77
VLPROFEXEC EXEC_GRAPH_BEGIN 945
8-
VLPROFEXEC MTASK_BEGIN 2695 id 6 predictStart 0 cpu 19 module
8+
VLPROFEXEC MTASK_BEGIN 2695 id 6 predictStart 0 cpu 19
99
VLPROFEXEC MTASK_END 2905 predictCost 30
10-
VLPROFEXEC MTASK_BEGIN 9695 id 10 predictStart 196 cpu 19 module
10+
VLPROFEXEC MTASK_BEGIN 9695 id 10 predictStart 196 cpu 19
1111
VLPROFEXEC MTASK_END 9870 predictCost 30
1212
VLPROFEXEC EXEC_GRAPH_END 12180
1313
VLPROFEXEC EXEC_GRAPH_BEGIN 14000
14-
VLPROFEXEC MTASK_BEGIN 15610 id 6 predictStart 0 cpu 19 module
14+
VLPROFEXEC MTASK_BEGIN 15610 id 6 predictStart 0 cpu 19
1515
VLPROFEXEC MTASK_END 15820 predictCost 30
1616
VLPROFEXEC THREAD_SCHEDULE_WAIT_BEGIN 16000 cpu 19
1717
VLPROFEXEC THREAD_SCHEDULE_WAIT_END 17000 cpu 19
18-
VLPROFEXEC MTASK_BEGIN 21700 id 10 predictStart 196 cpu 19 module
18+
VLPROFEXEC MTASK_BEGIN 21700 id 10 predictStart 196 cpu 19
1919
VLPROFEXEC MTASK_END 21875 predictCost 30
2020
VLPROFEXEC EXEC_GRAPH_END 22085
2121
VLPROFTHREAD 1
22-
VLPROFEXEC MTASK_BEGIN 5495 id 5 predictStart 0 cpu 10 module
22+
VLPROFEXEC MTASK_BEGIN 5495 id 5 predictStart 0 cpu 10
2323
VLPROFEXEC MTASK_END 6090 predictCost 30
24-
VLPROFEXEC MTASK_BEGIN 6300 id 7 predictStart 30 cpu 10 module
24+
VLPROFEXEC MTASK_BEGIN 6300 id 7 predictStart 30 cpu 10
2525
VLPROFEXEC MTASK_END 6895 predictCost 30
26-
VLPROFEXEC MTASK_BEGIN 7490 id 8 predictStart 60 cpu 10 module
26+
VLPROFEXEC MTASK_BEGIN 7490 id 8 predictStart 60 cpu 10
2727
VLPROFEXEC MTASK_END 8540 predictCost 107
28-
VLPROFEXEC MTASK_BEGIN 9135 id 9 predictStart 167 cpu 10 module
28+
VLPROFEXEC MTASK_BEGIN 9135 id 9 predictStart 167 cpu 10
2929
VLPROFEXEC MTASK_END 9730 predictCost 30
30-
VLPROFEXEC MTASK_BEGIN 10255 id 11 predictStart 197 cpu 10 module
30+
VLPROFEXEC MTASK_BEGIN 10255 id 11 predictStart 197 cpu 10
3131
VLPROFEXEC MTASK_END 11060 predictCost 30
3232
VLPROFEXEC THREAD_SCHEDULE_WAIT_BEGIN 17000 cpu 10
3333
VLPROFEXEC THREAD_SCHEDULE_WAIT_END 18000 cpu 10
34-
VLPROFEXEC MTASK_BEGIN 18375 id 5 predictStart 0 cpu 10 module
34+
VLPROFEXEC MTASK_BEGIN 18375 id 5 predictStart 0 cpu 10
3535
VLPROFEXEC MTASK_END 18970 predictCost 30
36-
VLPROFEXEC MTASK_BEGIN 19145 id 7 predictStart 30 cpu 10 module
36+
VLPROFEXEC MTASK_BEGIN 19145 id 7 predictStart 30 cpu 10
3737
VLPROFEXEC MTASK_END 19320 predictCost 30
38-
VLPROFEXEC MTASK_BEGIN 19670 id 8 predictStart 60 cpu 10 module
38+
VLPROFEXEC MTASK_BEGIN 19670 id 8 predictStart 60 cpu 10
3939
VLPROFEXEC MTASK_END 19810 predictCost 107
40-
VLPROFEXEC MTASK_BEGIN 20650 id 9 predictStart 167 cpu 10 module
40+
VLPROFEXEC MTASK_BEGIN 20650 id 9 predictStart 167 cpu 10
4141
VLPROFEXEC MTASK_END 20720 predictCost 30
42-
VLPROFEXEC MTASK_BEGIN 21140 id 11 predictStart 197 cpu 10 module
42+
VLPROFEXEC MTASK_BEGIN 21140 id 11 predictStart 197 cpu 10
4343
VLPROFEXEC MTASK_END 21245 predictCost 30
4444
VLPROF stat ticks 23415

0 commit comments

Comments
 (0)