SlideShare a Scribd company logo
1 of 45
Download to read offline
Collaboration Summit 2013




LTTng-UST: Efficient System-Wide
      User-Space Tracing


                  christian.babeux@efficios.com 
                                       @c_bab   1
whoami

   Christian Babeux, Software Developer, EfficiOS,

       Background in embedded and ASIC tools,

       Active contributor to the LTTng projects:
    ●   lttng-tools & lttng-ust,
    ●   CI infra, Website, Twitter.

       AUR package maintainer for Arch Linux.

                                                    2
Content

    Overview of LTTng 2.x and UST,

    User-space instrumentation sources,

    Trace format standardisation efforts,

    Tales from a user-space tracer,

     Recent features & future work.
                                             3
Overview of LTTng 2.x



                       4
Overview of LTTng 2.x
   Unified user interface, API, kernel and user
space tracers,


   Trace output in a unified format,


   Low overhead,


  Shipped in distros: Ubuntu, Debian, Suse,
Fedora, Linaro, Wind River, etc.
                                                   5
Project overview




                  

                       6
Tracers




●   lttng-modules: kernel tracer module, compatible
    with kernels from 2.6.38* to 3.9,
●   lttng-ust: user-space tracer, in-process library.
* Kernel tracing is now possible on 2.6.32 to 2.6.37 by backport of
3 Linux Kernel patches [1].

                                                                      7
Utilities


     
●   lttng-tools: cli utilities and daemons for trace control,
           –   lttng: cli utility for tracing control,
           –   lttng-sessiond: tracing registry daemon,
           –   lttng-consumerd: consume trace data,
           –   lttng-relayd: network streaming daemon.

                                                                8
Viewers


     
●   babeltrace: cli text viewer, trace converter,
    plugin system,
●   lttngtop: ncurse top-like viewer,
●   Eclipse lttng plugin: front-end for lttng, collect,
    visualize and analyze traces, highly extensible.
                                                          9
Overview of LTTng-UST



                       10
LTTng-UST – Features
      Pure userspace implementation,
        –   Shared memory map between apps and trace
            consumers,
        –   Portable to other OS: BSDs, Cygwin
            (experimental).


      Optimized for low-overhead, high-throughput
[2],
        –   Generic kernel ringbuffer ported to userspace,
        –   Efficient concurrent data structures for trace
            control.
                                                             11
LTTng-UST – Features (cont.)

    Dynamically enabled, statically defined
instrumentation,


    Per user tracing and system-wide tracing,
      –   Tracing group for system-wide tracing.


   Traces recoverable even after application crash.


                                                   12
LTTng-UST – How does it work?

    Users instrument their applications with
 static tracepoints,
    liblttng-ust, in-process library, dynamically
 linked with application,
    Session setup, etc.,
    Run app, collect traces,
    Post analysis with viewers.


                                                     13
Tracing session - Setup




           Session setup     $ lttng create
User-space event enabling    $ lttng enable-event -u -a
             Start tracing   $ lttng start



                                                          14
Tracing session - A wild app appears




●   Listener thread spawned via
    constructor (GCC extension),
●   App registration,
●   Send SHM and wait fd.




                                       15
Tracing session – App. execution & teardown




●   App running,
●   Events written to ringbuffer,
●   Notification of data
    availability via pipe,
●   App unregistered via
    destructor.




                                          16
User-space instrumentation
         sources



                            17
Tracepoints - Declaration
TRACEPOINT_EVENT(
    /* Provider name */
    ust_tests_hello,

    /* Tracepoint name */
    tptest,

    /* Type, variable name */
    TP_ARGS(int, anint,
            long *, values,
            float, floatarg),

    /* Type, field name, expression */
    TP_FIELDS(ctf_integer(int, intfield, anint),
              ctf_array(long, arrfield1, values, 3),
              ctf_float(float, floatfield, floatarg))
)

                                                        18
Tracepoints - Invocation
void function(void)
{
    int i = 0;
    long vals[3] = { 0x42, 0xCC, 0xC001CAFE };
    float flt = M_PI;

    [...]
    tracepoint(ust_tests_hello,
               tptest,
               i,
               &vals,
               flt);
    [...]
}
                                                 19
SystemTAP SDT Providers

 Integration result of Collaboration Summit 2011
discussions,



 Compatibility with SystemTAP SDT,
     –   Users can use SystemTAP with tracepoint()
         instrumented code.



                                                     20
Uprobes

   Kernel patchset merged in 3.5,



   LTTng integration:
     – Initial lttng-modules patchset proposed [4],
     – Need usability improvement
     – Interface not exported by kernel



                                                      21
Trace format standardisation efforts




                                       22
Trace format standardisation efforts




Source: xkcd.com/927



                                       23
Trace format standardisation efforts
   Joking aside: We need a common open format,
   Collaboration: Multicore Association, Ericsson,
   Goals of the Common Trace Format (CTF):
     –   Common format for SW and HW traces,
     –   Portable,
     –   Compact,
   Tools based on CTF:
     –   LTTng 2.x, Babeltrace, Eclipse LTTng plugin
     –   GDB (save trace to CTF) [3],
     –   Javeltrace                                    24
Common Trace Format




    Self-described, packet-based format.
                                            25
Common Trace Format – More info.

   “Interoperability Between Tracing Tools with the
 Common Trace Format”,
       –   Mathieu Desnoyers at Linux Plumbers 2012 [5]


    Common Trace Format (CTF) Specification [6],


    Common Trace Format compliance testsuite [7].


                                                          26
Tales from a user-space
         tracer



                         27
Non-intrusive handling of SIGPIPE

    Ringbuffer delivery notification use a pipe,
      –   Traced applications can receive SIGPIPE if
          consumer end dies abruptly.


    Suppress SIGPIPE only in our lib without
 affecting signal handling for the rest of the
 process [8].



                                                       28
TLS & constructors
●   Thread Local Storage (TLS) variable storage in
    dynamically libs. allocated when first used [9],

●   Rely on internal glibc mutex to protect against
    dynamic linker,

●   Same mutex is held while running ctor/dtor,



                                                       29
TLS & constructors (cont.)




                             30
TLS & constructors (cont.)


●   Take mutex within constructors while TLS fixup
    performed,
                    Deadlock!

●   Workaround: Force TLS fixup within lib ctor.




                                                     31
Tracing of apps closing all fds




                                  32
Close all the things

●   When daemonizing, some apps close all
    available fds,




                                            33
Tracing of apps closing all fds

●   When daemonizing, some apps close all
    available fds,


           No communication == No tracing.

●   Fix: None for the moment.




                                              34
Recent features & future
         work



                          35
Recent features
    2.1 (Basse Messe)
          Network streaming over TCP,
           ●   Introduce lttng-relayd, receive traces from
               remote consumers.


          Filtering before data collection,
           ●   C-like syntax, bytecode interpreter.
           ●   UST only for the moment.



              Session daemon health monitoring API.
                                                             36
Network streaming over TCP




                             37
Filtering (1)




 Filter:
 “(intfield > 42 && intfield <= 44) || longfield == 1”



                                                         38
Filtering (2)




 “(intfield > 42 && intfield <= 44) || longfield == 1”
                                                         39
Recent features (cont.)

    2.2 (Cuda, Currently in RC)
          Per-uid buffers in UST,


          Context filtering,
           ●   '$ctx.procname == “demo*”',
           ●   '$ctx.vpid > 9000'.


          Trace file size limits,

                                             40
Future work

    Flight recorder mode tracing (2.3),



    Trace data extracted on core dump (2.3),



     Java tracing.

                                                41
Future work (cont.)

   Tracer triggers actions on specific events & filters


   Compressed, encrypted streaming and storage,


 LTTng accepted in Google Summer of Code [10].
     –   Dynamic instrumentation support in UST,
     –   Android port.


                                                      42
Conclusion




  Usability of user space tracing in production




                                                   43
Questions ?




   ?
                 www.efficios.com




               lttng.org
               lttng-dev@lists.lttng.org
               @lttng_project           44
References
●   [1] – Userspace tracing in small footprint devices – Jason Wessel
●   [2] – lttng-modules README -
●   [3] – [lttng-dev] [lttng-modules PATCH] Add uprobes support – Yannick Brosseau
●   [4] – [PATCH v3 00/15] CTF Support – Yao Qi
●   [5] -
    “Interoperability Between Tracing Tools with the Common Trace Format” - Mathieu Desnoyers
    , Linux Plumbers 2012
●   [6] - Common Trace Format (CTF) Specification
●   [7] - Common Trace Format compliance testsuite
●   [8] – LTTng-UST – 2C44F5B9 - Fix UST SIGPIPE handling
●   [9] – ELF Handling for Thread-Local Storage – Ulrich Drepper (page 8)
●   [10] – LTTng GSoC 2013 Ideas list




                                                                                         45

More Related Content

What's hot

1053 tubing%20 performance1
1053 tubing%20 performance11053 tubing%20 performance1
1053 tubing%20 performance1Dani Garnida
 
Breaking Down Conventional Barriers With Managed Pressure Drilling
Breaking Down Conventional Barriers With Managed Pressure DrillingBreaking Down Conventional Barriers With Managed Pressure Drilling
Breaking Down Conventional Barriers With Managed Pressure DrillingSociety of Petroleum Engineers
 
Environmental Engineering Practical Series - Alkalinity Test of Water
Environmental Engineering Practical Series - Alkalinity Test of WaterEnvironmental Engineering Practical Series - Alkalinity Test of Water
Environmental Engineering Practical Series - Alkalinity Test of WaterSuyash Awasthi
 
Intel® RDT Hands-on Lab
Intel® RDT Hands-on LabIntel® RDT Hands-on Lab
Intel® RDT Hands-on LabMichelle Holley
 
1 Water Demands, Sources and Population Forecasting-converted.pptx
1 Water Demands, Sources and Population Forecasting-converted.pptx1 Water Demands, Sources and Population Forecasting-converted.pptx
1 Water Demands, Sources and Population Forecasting-converted.pptxDr. Manoj Garg
 
Aqueous Speciation in Hydrochemistry
Aqueous Speciation in HydrochemistryAqueous Speciation in Hydrochemistry
Aqueous Speciation in Hydrochemistryaqion
 
Water quality testing
Water quality testingWater quality testing
Water quality testingTarun kumar
 
iMPD Equipment
iMPD EquipmentiMPD Equipment
iMPD EquipmentKen Angus
 
Parameters of waste water analysis
Parameters of waste water analysisParameters of waste water analysis
Parameters of waste water analysisStudent
 
3_Artificial_lift_systems.ppt
3_Artificial_lift_systems.ppt3_Artificial_lift_systems.ppt
3_Artificial_lift_systems.pptathifaputricaesar
 
well logging tools and exercise_dileep p allavarapu
well logging tools and exercise_dileep p allavarapuwell logging tools and exercise_dileep p allavarapu
well logging tools and exercise_dileep p allavarapuknigh7
 
Presentation on water testing
Presentation on water testingPresentation on water testing
Presentation on water testingMadhur Devkota
 
Q913 re1 w4 lec 13
Q913 re1 w4 lec 13Q913 re1 w4 lec 13
Q913 re1 w4 lec 13AFATous
 
Practical wellbore formation test interpretation; #120009 (2009)
Practical wellbore formation test interpretation; #120009 (2009)Practical wellbore formation test interpretation; #120009 (2009)
Practical wellbore formation test interpretation; #120009 (2009)Tran Dang Sang
 
Sucker Rod Pump (SRP)
Sucker Rod Pump (SRP)Sucker Rod Pump (SRP)
Sucker Rod Pump (SRP)Rakesh Kumar
 
eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KernelThomas Graf
 
Production optimization
Production optimizationProduction optimization
Production optimizationWin Nyunt Aung
 
Lime Soda Process - Softening Of Water
Lime Soda Process - Softening Of WaterLime Soda Process - Softening Of Water
Lime Soda Process - Softening Of WaterVishvaraj Chauhan
 

What's hot (20)

1053 tubing%20 performance1
1053 tubing%20 performance11053 tubing%20 performance1
1053 tubing%20 performance1
 
Breaking Down Conventional Barriers With Managed Pressure Drilling
Breaking Down Conventional Barriers With Managed Pressure DrillingBreaking Down Conventional Barriers With Managed Pressure Drilling
Breaking Down Conventional Barriers With Managed Pressure Drilling
 
Environmental Engineering Practical Series - Alkalinity Test of Water
Environmental Engineering Practical Series - Alkalinity Test of WaterEnvironmental Engineering Practical Series - Alkalinity Test of Water
Environmental Engineering Practical Series - Alkalinity Test of Water
 
Intel® RDT Hands-on Lab
Intel® RDT Hands-on LabIntel® RDT Hands-on Lab
Intel® RDT Hands-on Lab
 
1 Water Demands, Sources and Population Forecasting-converted.pptx
1 Water Demands, Sources and Population Forecasting-converted.pptx1 Water Demands, Sources and Population Forecasting-converted.pptx
1 Water Demands, Sources and Population Forecasting-converted.pptx
 
Aqueous Speciation in Hydrochemistry
Aqueous Speciation in HydrochemistryAqueous Speciation in Hydrochemistry
Aqueous Speciation in Hydrochemistry
 
Water quality testing
Water quality testingWater quality testing
Water quality testing
 
iMPD Equipment
iMPD EquipmentiMPD Equipment
iMPD Equipment
 
Parameters of waste water analysis
Parameters of waste water analysisParameters of waste water analysis
Parameters of waste water analysis
 
3_Artificial_lift_systems.ppt
3_Artificial_lift_systems.ppt3_Artificial_lift_systems.ppt
3_Artificial_lift_systems.ppt
 
well logging tools and exercise_dileep p allavarapu
well logging tools and exercise_dileep p allavarapuwell logging tools and exercise_dileep p allavarapu
well logging tools and exercise_dileep p allavarapu
 
Presentation on water testing
Presentation on water testingPresentation on water testing
Presentation on water testing
 
Q913 re1 w4 lec 13
Q913 re1 w4 lec 13Q913 re1 w4 lec 13
Q913 re1 w4 lec 13
 
Practical wellbore formation test interpretation; #120009 (2009)
Practical wellbore formation test interpretation; #120009 (2009)Practical wellbore formation test interpretation; #120009 (2009)
Practical wellbore formation test interpretation; #120009 (2009)
 
Cementing
CementingCementing
Cementing
 
Thermodynamic Property Models for Transport and Storage of CO2 - Roland Span,...
Thermodynamic Property Models for Transport and Storage of CO2 - Roland Span,...Thermodynamic Property Models for Transport and Storage of CO2 - Roland Span,...
Thermodynamic Property Models for Transport and Storage of CO2 - Roland Span,...
 
Sucker Rod Pump (SRP)
Sucker Rod Pump (SRP)Sucker Rod Pump (SRP)
Sucker Rod Pump (SRP)
 
eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux Kernel
 
Production optimization
Production optimizationProduction optimization
Production optimization
 
Lime Soda Process - Softening Of Water
Lime Soda Process - Softening Of WaterLime Soda Process - Softening Of Water
Lime Soda Process - Softening Of Water
 

Similar to LTTng-UST: Efficient System-Wide User-Space Tracing

Bridging the gap between hardware and software tracing
Bridging the gap between hardware and software tracingBridging the gap between hardware and software tracing
Bridging the gap between hardware and software tracingChristian Babeux
 
Automotive Grade Linux and systemd
Automotive Grade Linux and systemdAutomotive Grade Linux and systemd
Automotive Grade Linux and systemdAlison Chaiken
 
Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102Linaro
 
OpenTelemetry For Architects
OpenTelemetry For ArchitectsOpenTelemetry For Architects
OpenTelemetry For ArchitectsKevin Brockhoff
 
Introduction to FreeRTOS
Introduction to FreeRTOSIntroduction to FreeRTOS
Introduction to FreeRTOSICS
 
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)Jakub Botwicz
 
Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Kynetics
 
Pristine glif 2015
Pristine glif 2015Pristine glif 2015
Pristine glif 2015ICT PRISTINE
 
Implementing Observability for Kubernetes.pdf
Implementing Observability for Kubernetes.pdfImplementing Observability for Kubernetes.pdf
Implementing Observability for Kubernetes.pdfJose Manuel Ortega Candel
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1Hajime Tazaki
 
Advanced Tracing features using GDB and LTTng
Advanced Tracing features using GDB and LTTngAdvanced Tracing features using GDB and LTTng
Advanced Tracing features using GDB and LTTngmarckhouzam
 
Lcu14 101- coresight overview
Lcu14 101- coresight overviewLcu14 101- coresight overview
Lcu14 101- coresight overviewLinaro
 
Prometheus - Intro, CNCF, TSDB,PromQL,Grafana
Prometheus - Intro, CNCF, TSDB,PromQL,GrafanaPrometheus - Intro, CNCF, TSDB,PromQL,Grafana
Prometheus - Intro, CNCF, TSDB,PromQL,GrafanaSridhar Kumar N
 
Provenance for Data Munging Environments
Provenance for Data Munging EnvironmentsProvenance for Data Munging Environments
Provenance for Data Munging EnvironmentsPaul Groth
 
下午1 intel yang, elton_mee_go-arch-update-final
下午1 intel yang, elton_mee_go-arch-update-final下午1 intel yang, elton_mee_go-arch-update-final
下午1 intel yang, elton_mee_go-arch-update-finalcsdnmobile
 
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesTizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesSamsung Open Source Group
 

Similar to LTTng-UST: Efficient System-Wide User-Space Tracing (20)

Bridging the gap between hardware and software tracing
Bridging the gap between hardware and software tracingBridging the gap between hardware and software tracing
Bridging the gap between hardware and software tracing
 
Automotive Grade Linux and systemd
Automotive Grade Linux and systemdAutomotive Grade Linux and systemd
Automotive Grade Linux and systemd
 
Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102
 
OpenTelemetry For Architects
OpenTelemetry For ArchitectsOpenTelemetry For Architects
OpenTelemetry For Architects
 
Tos tutorial
Tos tutorialTos tutorial
Tos tutorial
 
Introduction to FreeRTOS
Introduction to FreeRTOSIntroduction to FreeRTOS
Introduction to FreeRTOS
 
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
Cotopaxi - IoT testing toolkit (Black Hat Asia 2019 Arsenal)
 
Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7
 
Pristine glif 2015
Pristine glif 2015Pristine glif 2015
Pristine glif 2015
 
Implementing Observability for Kubernetes.pdf
Implementing Observability for Kubernetes.pdfImplementing Observability for Kubernetes.pdf
Implementing Observability for Kubernetes.pdf
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1
 
Advanced Tracing features using GDB and LTTng
Advanced Tracing features using GDB and LTTngAdvanced Tracing features using GDB and LTTng
Advanced Tracing features using GDB and LTTng
 
AMIT SRIVASTAVA
AMIT SRIVASTAVAAMIT SRIVASTAVA
AMIT SRIVASTAVA
 
Lcu14 101- coresight overview
Lcu14 101- coresight overviewLcu14 101- coresight overview
Lcu14 101- coresight overview
 
Prometheus - Intro, CNCF, TSDB,PromQL,Grafana
Prometheus - Intro, CNCF, TSDB,PromQL,GrafanaPrometheus - Intro, CNCF, TSDB,PromQL,Grafana
Prometheus - Intro, CNCF, TSDB,PromQL,Grafana
 
Provenance for Data Munging Environments
Provenance for Data Munging EnvironmentsProvenance for Data Munging Environments
Provenance for Data Munging Environments
 
下午1 intel yang, elton_mee_go-arch-update-final
下午1 intel yang, elton_mee_go-arch-update-final下午1 intel yang, elton_mee_go-arch-update-final
下午1 intel yang, elton_mee_go-arch-update-final
 
Onnc intro
Onnc introOnnc intro
Onnc intro
 
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesTizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
 
D4 Project Presentation
D4 Project PresentationD4 Project Presentation
D4 Project Presentation
 

Recently uploaded

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

LTTng-UST: Efficient System-Wide User-Space Tracing

  • 1. Collaboration Summit 2013 LTTng-UST: Efficient System-Wide User-Space Tracing christian.babeux@efficios.com  @c_bab  1
  • 2. whoami  Christian Babeux, Software Developer, EfficiOS,  Background in embedded and ASIC tools,  Active contributor to the LTTng projects: ● lttng-tools & lttng-ust, ● CI infra, Website, Twitter.  AUR package maintainer for Arch Linux. 2
  • 3. Content  Overview of LTTng 2.x and UST,  User-space instrumentation sources,  Trace format standardisation efforts,  Tales from a user-space tracer,  Recent features & future work. 3
  • 4. Overview of LTTng 2.x  4
  • 5. Overview of LTTng 2.x  Unified user interface, API, kernel and user space tracers,  Trace output in a unified format,  Low overhead,  Shipped in distros: Ubuntu, Debian, Suse, Fedora, Linaro, Wind River, etc. 5
  • 6. Project overview   6
  • 7. Tracers ● lttng-modules: kernel tracer module, compatible with kernels from 2.6.38* to 3.9, ● lttng-ust: user-space tracer, in-process library. * Kernel tracing is now possible on 2.6.32 to 2.6.37 by backport of 3 Linux Kernel patches [1]. 7
  • 8. Utilities  ● lttng-tools: cli utilities and daemons for trace control, – lttng: cli utility for tracing control, – lttng-sessiond: tracing registry daemon, – lttng-consumerd: consume trace data, – lttng-relayd: network streaming daemon. 8
  • 9. Viewers  ● babeltrace: cli text viewer, trace converter, plugin system, ● lttngtop: ncurse top-like viewer, ● Eclipse lttng plugin: front-end for lttng, collect, visualize and analyze traces, highly extensible. 9
  • 11. LTTng-UST – Features  Pure userspace implementation, – Shared memory map between apps and trace consumers, – Portable to other OS: BSDs, Cygwin (experimental).  Optimized for low-overhead, high-throughput [2], – Generic kernel ringbuffer ported to userspace, – Efficient concurrent data structures for trace control. 11
  • 12. LTTng-UST – Features (cont.)  Dynamically enabled, statically defined instrumentation,  Per user tracing and system-wide tracing, – Tracing group for system-wide tracing.  Traces recoverable even after application crash. 12
  • 13. LTTng-UST – How does it work?  Users instrument their applications with static tracepoints,  liblttng-ust, in-process library, dynamically linked with application,  Session setup, etc.,  Run app, collect traces,  Post analysis with viewers. 13
  • 14. Tracing session - Setup Session setup $ lttng create User-space event enabling $ lttng enable-event -u -a Start tracing $ lttng start 14
  • 15. Tracing session - A wild app appears ● Listener thread spawned via constructor (GCC extension), ● App registration, ● Send SHM and wait fd. 15
  • 16. Tracing session – App. execution & teardown ● App running, ● Events written to ringbuffer, ● Notification of data availability via pipe, ● App unregistered via destructor. 16
  • 17. User-space instrumentation sources  17
  • 18. Tracepoints - Declaration TRACEPOINT_EVENT( /* Provider name */ ust_tests_hello, /* Tracepoint name */ tptest, /* Type, variable name */ TP_ARGS(int, anint, long *, values, float, floatarg), /* Type, field name, expression */ TP_FIELDS(ctf_integer(int, intfield, anint), ctf_array(long, arrfield1, values, 3), ctf_float(float, floatfield, floatarg)) ) 18
  • 19. Tracepoints - Invocation void function(void) { int i = 0; long vals[3] = { 0x42, 0xCC, 0xC001CAFE }; float flt = M_PI; [...] tracepoint(ust_tests_hello, tptest, i, &vals, flt); [...] } 19
  • 20. SystemTAP SDT Providers  Integration result of Collaboration Summit 2011 discussions,  Compatibility with SystemTAP SDT, – Users can use SystemTAP with tracepoint() instrumented code. 20
  • 21. Uprobes  Kernel patchset merged in 3.5,  LTTng integration: – Initial lttng-modules patchset proposed [4], – Need usability improvement – Interface not exported by kernel 21
  • 23. Trace format standardisation efforts Source: xkcd.com/927 23
  • 24. Trace format standardisation efforts  Joking aside: We need a common open format,  Collaboration: Multicore Association, Ericsson,  Goals of the Common Trace Format (CTF): – Common format for SW and HW traces, – Portable, – Compact,  Tools based on CTF: – LTTng 2.x, Babeltrace, Eclipse LTTng plugin – GDB (save trace to CTF) [3], – Javeltrace 24
  • 25. Common Trace Format  Self-described, packet-based format. 25
  • 26. Common Trace Format – More info.  “Interoperability Between Tracing Tools with the Common Trace Format”, – Mathieu Desnoyers at Linux Plumbers 2012 [5]  Common Trace Format (CTF) Specification [6],  Common Trace Format compliance testsuite [7]. 26
  • 27. Tales from a user-space tracer  27
  • 28. Non-intrusive handling of SIGPIPE  Ringbuffer delivery notification use a pipe, – Traced applications can receive SIGPIPE if consumer end dies abruptly.  Suppress SIGPIPE only in our lib without affecting signal handling for the rest of the process [8]. 28
  • 29. TLS & constructors ● Thread Local Storage (TLS) variable storage in dynamically libs. allocated when first used [9], ● Rely on internal glibc mutex to protect against dynamic linker, ● Same mutex is held while running ctor/dtor, 29
  • 30. TLS & constructors (cont.) 30
  • 31. TLS & constructors (cont.) ● Take mutex within constructors while TLS fixup performed,  Deadlock! ● Workaround: Force TLS fixup within lib ctor. 31
  • 32. Tracing of apps closing all fds 32
  • 33. Close all the things ● When daemonizing, some apps close all available fds, 33
  • 34. Tracing of apps closing all fds ● When daemonizing, some apps close all available fds,  No communication == No tracing. ● Fix: None for the moment. 34
  • 35. Recent features & future work  35
  • 36. Recent features  2.1 (Basse Messe)  Network streaming over TCP, ● Introduce lttng-relayd, receive traces from remote consumers.  Filtering before data collection, ● C-like syntax, bytecode interpreter. ● UST only for the moment.  Session daemon health monitoring API. 36
  • 38. Filtering (1) Filter: “(intfield > 42 && intfield <= 44) || longfield == 1” 38
  • 39. Filtering (2) “(intfield > 42 && intfield <= 44) || longfield == 1” 39
  • 40. Recent features (cont.)  2.2 (Cuda, Currently in RC)  Per-uid buffers in UST,  Context filtering, ● '$ctx.procname == “demo*”', ● '$ctx.vpid > 9000'.  Trace file size limits, 40
  • 41. Future work  Flight recorder mode tracing (2.3),  Trace data extracted on core dump (2.3),  Java tracing. 41
  • 42. Future work (cont.)  Tracer triggers actions on specific events & filters  Compressed, encrypted streaming and storage,  LTTng accepted in Google Summer of Code [10]. – Dynamic instrumentation support in UST, – Android port. 42
  • 43. Conclusion  Usability of user space tracing in production 43
  • 44. Questions ? ?  www.efficios.com  lttng.org  lttng-dev@lists.lttng.org  @lttng_project 44
  • 45. References ● [1] – Userspace tracing in small footprint devices – Jason Wessel ● [2] – lttng-modules README - ● [3] – [lttng-dev] [lttng-modules PATCH] Add uprobes support – Yannick Brosseau ● [4] – [PATCH v3 00/15] CTF Support – Yao Qi ● [5] - “Interoperability Between Tracing Tools with the Common Trace Format” - Mathieu Desnoyers , Linux Plumbers 2012 ● [6] - Common Trace Format (CTF) Specification ● [7] - Common Trace Format compliance testsuite ● [8] – LTTng-UST – 2C44F5B9 - Fix UST SIGPIPE handling ● [9] – ELF Handling for Thread-Local Storage – Ulrich Drepper (page 8) ● [10] – LTTng GSoC 2013 Ideas list 45