• Sasha Goldshtein's avatar
    argdist, trace: Native tracepoint support (#724) · 376ae5c0
    Sasha Goldshtein authored
    * Remove tracepoint.py
    
    The `Tracepoint` class which implements the necessary
    support for the tracepoint kprobe-based hack is no
    longer needed and can be removed.
    
    * argdist: Native tracepoint support
    
    This commit migrates argdist to use the native bcc/BPF
    tracepoint support instead of the hackish kprobe-
    based approach. The resulting programs are cleaner
    and likely more efficient.
    
    As a result of this change, there is a slight API
    change in how argdist is used with tracepoints. To
    access fields from the tracepoint structure, the user
    is expected to use `args->field` directly. This
    leverages most of the built-in bcc support for
    generating the tracepoint probe function.
    
    * trace: Native tracepoint support
    
    This commit migrates trace to use the native bcc/BPF
    tracepoint support instead of the hackish kprobe-
    based approach. The resulting programs are cleaner
    and likely more efficient.
    
    As with argdist, users are now expected to use the
    `args` structure pointer to access the tracepoint's
    arguments.
    
    For example:
    
    ```
    trace 't:irq:irq_handler_entry (args->irq != 27) "irq %d", args->irq'
    ```
    376ae5c0
trace.py 26.1 KB