Skip to content

Conversation

@r1viollet
Copy link
Collaborator

What does this PR do?

  • Upgrade elfutils to 0.194
  • Add some support to ensure we can work with virtiofs paths
(/run/host_virtiofs/Users/erwan.viollet/go/src/github.com/DataDog/ddprof/build_gcc_unknown-linux-2.39_Deb/test/simple_malloc)(T-Standard)(r-x)(ID#-1)
  • Add a heuristic to get past vdso in arm64

Motivation

Working from MacOS aarch64, I was not able to get proper frames.
With these changes, I no longer have failures on Simple Malloc tests.

Additional Notes

This will require a branch in ddprof-build to cache elfutils:
https://github.com/DataDog/ddprof-build/pull/152

How to test the change?

Describe here in detail how the change can be validated. This is a great section to call out specific tests you've added or improved, or to acknowledge code sections which are particularly difficult to test.

…_gettime

- snapshot/map the vDSO so DWFL can surface proper kernel helper symbols
- add workspace remapping hooks to resolve virtiofs-hosted binaries
This helps with the MacOS dev workflow
@r1viollet r1viollet requested a review from nsavoire as a code owner December 4, 2025 11:59
- Extract vdso file info to a separate RAII class
- Fix compilation warnings
DsoOrigin::kProcMaps};
}

void DsoHdr::init_workspace_remap() {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry for this complexity, though this allows me to work with docker, it should be a no-op for folks

@pr-commenter
Copy link

pr-commenter bot commented Dec 4, 2025

Benchmark results for collatz

Parameters

Baseline Candidate
config baseline candidate
profiler-version ddprof 0.22.1+0a7e43ab.84872644 ddprof 0.22.1+cc668204.84877980

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 1 metrics, 0 unstable metrics.

See unchanged results
scenario Δ mean execution_time
scenario:ddprof -S bench-collatz --preset cpu_only collatz_runner.sh same

@pr-commenter
Copy link

pr-commenter bot commented Dec 4, 2025

Benchmark results for BadBoggleSolver_run

Parameters

Baseline Candidate
config baseline candidate
profiler-version ddprof 0.22.1+0a7e43ab.84872644 ddprof 0.22.1+cc668204.84877980

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 1 metrics, 0 unstable metrics.

See unchanged results
scenario Δ mean execution_time
scenario:ddprof -S bench-bad-boggle-solver BadBoggleSolver_run work 1000 same

addr &= top_byte_mask;

constexpr unsigned canonical_bits = 48;
if (canonical_bits < k_top_byte_shift) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand the logic of this function:
this condition is always true, therefore the previous masking operation is unnecessary

Copy link
Collaborator

@nsavoire nsavoire left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approval without review: no time to review

@r1viollet
Copy link
Collaborator Author

I'll work on splitting the PR

@r1viollet r1viollet marked this pull request as draft December 4, 2025 14:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants