Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: DataDog/ddprof
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: b81b250
Choose a base ref
...
head repository: DataDog/ddprof
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 29982d1
Choose a head ref
  • 4 commits
  • 12 files changed
  • 5 contributors

Commits on Apr 14, 2026

  1. Configuration menu
    Copy the full SHA
    506ceae View commit details
    Browse the repository at this point in the history

Commits on Apr 15, 2026

  1. Configuration menu
    Copy the full SHA
    766f0de View commit details
    Browse the repository at this point in the history

Commits on Apr 17, 2026

  1. refactor: simplify allocation tracker lifecycle (#543)

    * refactor: simplify allocation tracker lifecycle
    
    Use `_instance != nullptr` as the single source of truth for "tracking
    active", dropping the separate `track_allocations` atomic and the lazy
    `remaining_bytes_initialized` flag (TLS shrinks 48 -> 40 bytes). The
    per-thread sampling offset is now applied once in `init_tl_state`
    instead of on every first allocation.
    
    - Make `_instance` a `std::atomic<AllocationTracker *>` with
    acquire/release ordering and route all accesses through a
    `get_instance()` helper so publishing and tearing down the instance
    synchronize correctly with observing threads.
    - Initialize the starter thread's TLS before publishing `_instance`
    to avoid a window where other threads observe a non-null instance
    with half-initialized state.
    - Defer `pevent_munmap_event` to the next `allocation_tracking_init`
    (guarded by `mapfd != -1`) so in-flight hooks cannot race with
    teardown; add default initializers to `PEvent` to make the guard
    sound.
    - Call `restore_overrides()` in `allocation_profiling_stop` to pair
    with `setup_overrides()` on start.
    
    * docs: warn about restart races in public profiling API
    
    Document that ddprof_stop_profiling() does not drain in-flight
    allocation hooks, and that a stop/start sequence requires the caller
    to quiesce allocation activity to avoid racing with ring buffer
    re-init.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
    
    ---------
    
    Co-authored-by: Erwan Viollet <[email protected]>
    Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
    3 people authored Apr 17, 2026
    Configuration menu
    Copy the full SHA
    3c60440 View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2026

  1. ddprof v0.26.0 (#545)

    r1viollet authored Apr 24, 2026
    Configuration menu
    Copy the full SHA
    29982d1 View commit details
    Browse the repository at this point in the history
Loading