KEMBAR78
User-space part of a trace is not reported if Kernel symbols are unavailable · Issue #1044 · async-profiler/async-profiler · GitHub
Skip to content

User-space part of a trace is not reported if Kernel symbols are unavailable #1044

@AntonIvanov87

Description

@AntonIvanov87

Describe the bug

Say there is a trace that leads into the kernel:

  ...
  [13] do_syscall_64_[k]
  [14] entry_SYSCALL_64_after_hwframe_[k]
  [15] send
  [16] io.netty.channel.unix.Socket.sendAddress

and consumes much CPU cycles.

If Kernel symbols are not available:

[WARN] Kernel symbols are unavailable due to restrictions. Try
  sysctl kernel.perf_event_paranoid=1
  sysctl kernel.kptr_restrict=0

such traces are not reported at all.

This creates an illusion that CPU is spend elsewhere.

Expected vs. actual behavior

Actual behaviour: such traces are ignored.

Expected behaviour: at least user-space part of such traces should be reported, e.g.:

  [0] send
  [1] io.netty.channel.unix.Socket.sendAddress

Or even:

  [0] Kernel symbols are unavailable
  [1] send
  [2] io.netty.channel.unix.Socket.sendAddress

Reproduction Steps

No response

Additional Information/Context

No response

Async-profiler version

3.0

Environment details

OS: CentOS 9, Linux 5.15.160
JDK: 11
CPU: x86_64

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions