KEMBAR78
Configure alternative profiling signal · Issue #759 · async-profiler/async-profiler · GitHub
Skip to content

Configure alternative profiling signal #759

@apangin

Description

@apangin

Background

Async-profiler heavily relies on POSIX signals. In perf_events and itimer modes, a profiling event triggers delivery of SIGPROF to a currently running thread. In wall mode, a thread being sampled receives SIGVTALRM. Async-profiler assumes the application does not use SIGPROF or SIGVTALRM for other purposes.

Furthermore, since a signal handler is a global property of a process, it is not possible to run two instances of async-profiler on the same process concurrently. For example, this can be helpful for doing some ad-hoc profiling with a custom configuration while continuous profiling is already running.

Proposal

Introduce new signal argument to override the default profiling signal(s). It can be used to configure continuous profiler to avoid conflict with an ad-hoc profiler.

E.g. -agentlib:asyncProfiler=start,event=cpu,signal=36 will force async-profiler use SIGRTMIN+2 instead of SIGPROF for CPU profiling.

To change both cpu and wall signals, we'll use syntax like signal=36/37.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions