Skip to content

Commit a35e53d

Browse files
authored
Merge pull request JuliaLang#49901 from topolarity/julia-side-timing
Allocate timing counts on-the-fly + support dynamic events
2 parents f61bbfb + 3c915f3 commit a35e53d

File tree

5 files changed

+379
-225
lines changed

5 files changed

+379
-225
lines changed

src/julia.expmap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
_Z24jl_coverage_data_pointerN4llvm9StringRefEi;
3131
_Z22jl_coverage_alloc_lineN4llvm9StringRefEi;
3232
_Z22jl_malloc_data_pointerN4llvm9StringRefEi;
33+
_jl_timing_*;
3334
LLVMExtra*;
3435
JLJIT*;
3536
llvmGetPassPluginInfo;

src/julia.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1982,6 +1982,7 @@ JL_DLLEXPORT void jl_sigatomic_end(void);
19821982
// tasks and exceptions -------------------------------------------------------
19831983

19841984
typedef struct _jl_timing_block_t jl_timing_block_t;
1985+
typedef struct _jl_timing_event_t jl_timing_event_t;
19851986
typedef struct _jl_excstack_t jl_excstack_t;
19861987

19871988
// info describing an exception handler

src/task.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,7 @@ JL_DLLEXPORT void jl_switch(void) JL_NOTSAFEPOINT_LEAVE JL_NOTSAFEPOINT_ENTER
646646
int finalizers_inhibited = ptls->finalizers_inhibited;
647647
ptls->finalizers_inhibited = 0;
648648

649-
jl_timing_block_t *blk = jl_timing_block_exit_task(ct, ptls);
649+
jl_timing_block_t *blk = jl_timing_block_task_exit(ct, ptls);
650650
ctx_switch(ct);
651651

652652
#ifdef MIGRATE_TASKS
@@ -666,7 +666,7 @@ JL_DLLEXPORT void jl_switch(void) JL_NOTSAFEPOINT_LEAVE JL_NOTSAFEPOINT_ENTER
666666
0 != ct->ptls &&
667667
0 == ptls->finalizers_inhibited);
668668
ptls->finalizers_inhibited = finalizers_inhibited;
669-
jl_timing_block_enter_task(ct, ptls, blk); (void)blk;
669+
jl_timing_block_task_enter(ct, ptls, blk); (void)blk;
670670

671671
sig_atomic_t other_defer_signal = ptls->defer_signal;
672672
ptls->defer_signal = defer_signal;
@@ -705,7 +705,7 @@ JL_DLLEXPORT JL_NORETURN void jl_no_exc_handler(jl_value_t *e, jl_task_t *ct)
705705
#define pop_timings_stack() \
706706
jl_timing_block_t *cur_block = ptls->timing_stack; \
707707
while (cur_block && eh->timing_stack != cur_block) { \
708-
cur_block = jl_pop_timing_block(cur_block); \
708+
cur_block = jl_timing_block_pop(cur_block); \
709709
} \
710710
assert(cur_block == eh->timing_stack);
711711
#else
@@ -1084,7 +1084,7 @@ JL_DLLEXPORT jl_task_t *jl_new_task(jl_function_t *start, jl_value_t *completion
10841084
t->ptls = NULL;
10851085
t->world_age = ct->world_age;
10861086
t->reentrant_timing = 0;
1087-
jl_timing_init_task(t);
1087+
jl_timing_task_init(t);
10881088

10891089
#ifdef COPY_STACKS
10901090
if (!t->copy_stack) {
@@ -1221,7 +1221,7 @@ CFI_NORETURN
12211221

12221222
ct->started = 1;
12231223
JL_PROBE_RT_START_TASK(ct);
1224-
jl_timing_block_enter_task(ct, ptls, NULL);
1224+
jl_timing_block_task_enter(ct, ptls, NULL);
12251225
if (jl_atomic_load_relaxed(&ct->_isexception)) {
12261226
record_backtrace(ptls, 0);
12271227
jl_push_excstack(&ct->excstack, ct->result,
@@ -1693,7 +1693,7 @@ jl_task_t *jl_init_root_task(jl_ptls_t ptls, void *stack_lo, void *stack_hi)
16931693
ct->ctx.asan_fake_stack = NULL;
16941694
#endif
16951695

1696-
jl_timing_block_enter_task(ct, ptls, NULL);
1696+
jl_timing_block_task_enter(ct, ptls, NULL);
16971697

16981698
#ifdef COPY_STACKS
16991699
// initialize the base_ctx from which all future copy_stacks will be copies

0 commit comments

Comments
 (0)