1. 30 Mar, 2016 4 commits
  2. 29 Mar, 2016 4 commits
  3. 28 Mar, 2016 5 commits
    • Jean-Tiare Le Bigot's avatar
      bf330147
    • Brenden Blanco's avatar
      Merge pull request #453 from yadutaf/jt-endian · 79631664
      Brenden Blanco authored
      expose buitin byte swap methods
      79631664
    • Jean-Tiare Le Bigot's avatar
      expose buitin byte swap methods · e3b3b4c2
      Jean-Tiare Le Bigot authored
      e3b3b4c2
    • Sasha Goldshtein's avatar
      argdist, trace, and tplist support for USDT probes · 3e39a08a
      Sasha Goldshtein authored
      These tools now support USDT probes with the 'u:provider:probe' syntax.
      Probes in a library or process can be listed with 'tplist -l LIB' or 'tplist -p PID'.
      Probe arguments are also parsed and available in both argdist and trace as arg1,
      arg2, etc., regardless of the probe attach location.
      
      The same USDT probe can be used at multiple locations, which means the attach infra-
      structure must probe all these locations. argdist and trace register thunk probes
      at each location, which call a central probe function (which is static inline) with
      the location id (__loc_id). The central probe function checks the location id to
      determine how the arguments should be retrieved -- this is location-dependent.
      
      Finally, some USDT probes must be enabled first by writing a value to a memory
      location (this is called a "semaphore"). This value is per-process, so we require a
      process id for this kind of probes.
      
      Along with trace and argdist tool support, this commit also introduces new classes
      in the bcc module: ProcStat handles pid-wrap detection, whereas USDTReader,
      USDTProbe, USDTProbeLocation, and USDTArgument are the shared USDT-related
      infrastructure that enables enumeration, attachment, and argument retrieval for
      USDT probes.
      3e39a08a
    • Brenden Blanco's avatar
      Merge pull request #449 from goldshtn/tp-str-fix · af66546d
      Brenden Blanco authored
      Fixed bug around local assignment from char array
      af66546d
  4. 27 Mar, 2016 6 commits
  5. 26 Mar, 2016 2 commits
    • Vicent Marti's avatar
      offcputime: Resolve stacks using a StackTrace table · e82fb1ba
      Vicent Marti authored
      The manual walking for kernel stacks in the eBPF code has been replaced
      with a `BPF_STACK_TRACE` table; the stack ID is now stored as an integer
      in the main key.
      
      Thanks to the `StackTrace.walk` iterator, the printing code can also be
      significantly simplified for both folded and full stack modes.
      e82fb1ba
    • Vicent Marti's avatar
      memleak: Resolve stacks with a StackTrace table · e25ae03e
      Vicent Marti authored
      Instead of manually walking the (kernel) stack inside the eBPF code,
      create a `BPF_STACK_TRACE` table and store the stack IDs in the alloc
      info struct.
      
      This greatly simplifies the leak detection code: instead of storing the
      full stack trace as a string to de-duplicate the allocation point for
      the different allocations, we can store the `stack_id`. Since we're
      creating stack IDs with `BPF_F_REUSE_STACKID`, the kernel will take care
      of deduplication for us.
      
      Additionally, the `StackDecoder` class has been specialized into a
      `UStackDecoder` and `KStackDecoder` (for userland and kernel stacks,
      respectively). This lets us pass the decode class directly to
      `stack_traces.walk()` to automate symbol resolution.
      
      A new class, `Allocation` has been created to encapsulate what
      previously was a 2-element tuple of `(count, size)`. This
      e25ae03e
  6. 25 Mar, 2016 2 commits
    • Vicent Marti's avatar
      examples: Add `mallocstacks` · 88899060
      Vicent Marti authored
      This simple example script traces all calls to `malloc` in a process and
      prints the callsite using the new `BPF_STACK_TRACE` table API.
      88899060
    • Vicent Marti's avatar
      table: Implement a StackWalker for StackTrace tables · 066eb309
      Vicent Marti authored
      The StackWalker iterator lets us call `stack_trace.walk(id)` to iterate
      through the addresses in any given stack. The constructor of this
      iterator takes an optional `resolver` to convert the addresses in the
      iterator into symbols (or to format them according to the users' needs).
      066eb309
  7. 24 Mar, 2016 2 commits
  8. 23 Mar, 2016 2 commits
  9. 22 Mar, 2016 2 commits
  10. 21 Mar, 2016 8 commits
  11. 20 Mar, 2016 1 commit
  12. 16 Mar, 2016 2 commits