-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[browser] single threaded diagnostic server #111910
Conversation
Tagging subscribers to 'arch-wasm': @lewing |
@lateralusX please review this first step |
# Conflicts: # src/native/eventpipe/CMakeLists.txt
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Second pass on the EP code, mainly code structural comments as well as one idea around ep_rt_thread_create.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Native Mono and EventPipe changes LGTM! Thanks!
To be merged after preview snap |
This is split from #110818 to make code review easier
Enabled by
<FeaturePerfTracing>true</FeaturePerfTracing>
Single thread
ep_rt_thread_create
andep_rt_thread_mono_start_func
streaming_loop_tick
refactored fromstreaming_thread
server_loop_tick
from refactoredserver_thread
mono_wasm_ds_exec
to process on tick on event loopmono_schedule_ds_job
will register callback into queue for aboveep_rt_wait_event_wait
FEATURE_PERFTRACING_DISABLE_THREADS
->PERFTRACING_DISABLE_THREADS
ds_ipc_stream_factory_get_next_available_stream
only polls once and never blocksSampling
sampling_thread
because we can't do "stop-the-world and scan other threads"ep_rt_sample_profiler_enabled
andep_rt_sample_profiler_disabled
ep_rt_mono_sampling_provider_component_init
MONO_PROFILER_CALL_INSTRUMENTATION_ENTER
FeaturePerfTracing
FeaturePerfTracingSampling
to enable/disable this if necessaryWeb socket
FEATURE_PERFTRACING_PAL_WS
ds-ipc-pal-websocket.c
andds-ipc-pal-websocket.h
they just forward to JavaScriptds_rt_websocket_create
,ds_rt_websocket_send
,ds_rt_websocket_poll
,ds_rt_websocket_recv
,ds_rt_websocket_close
Other
diagnostics_tracing-static.a
in in-tree buildsMicrosoft.NETCore.App.Runtime.Mono.perftrace.**RID**
cleanupSystemNative_GetCpuUtilization
Next PRs
MINT_SDB_SEQ_POINT
or similarOut of scope
contributes to #76316