Linux & Open-Source Training Linux Laptops Linux Services

Linux Kernel Debugging and Performance

A Two Day Course

Course Description
This course is designed to train developers in effective debugging and performance measurement and improvement techniques for the Linux kernel.

This course walks participants through kernel documentation, kernel configuration, kernel debugging, kernel measurement and other tools.

Course Objectives
After this course attendees will be able to.

  • browse the kernel source code
  • create and use proc, sysfs, and debugfs files
  • use a variety of kernel debugging configuration features
  • use GDB with the kernel
  • profile the kernel for various performance characteristics
Who Should Attend:

The course is for programmers who are relatively new to Linux kernel debugging and performance measurement and improvement. Attendees should have experience with C and be able to perform Linux commands.

Duration: Two days. (9AM - 4PM)

Course Materials
The workshop materials include a comprehensive student workbook. The workbook contains all of the slides used in the course as well as hands-on lab exercises.

Students should bring a personal USB thumb drive to use to bring home class files.,

Course Workshop:
The workshop makes use of laptops with a desktop Linux distribution for development.

Students will share a computer with two students per computer. Students work as a team on the laboratory exercises. When delivered via WebEx students should have root access to a computer running Fedora 11. Virtual machines are discouraged.

Course Content:

Linux Kernel Source code and documentation

  • Browsing the source
  • LXR
  • tags
  • cscope
  • documentation

Lab Exercises

  • Find kernel source for various features
  • Customize kernel source
  • Determine kernel functionality from source and specialized documentation

Kernel Configuration for Debugging and Perfor­mance Measurement

  • spin lock configuration
  • statistics
  • lock usage
  • debug info
  • mutex
  • Magic SysRq
  • KGDB
  • stack
  • Memory allocation

Lab Exercises

  • Create custom kernel configuration for debugging and measurement
  • Enable a variety of debugging fea­tures
  • Examine features provided by con­figuration values
  • Debug spin lock problems

Filesystems For Debugging

  • procfs
  • prof files
  • creating proc files
  • sysfs
  • sysfs information
  • debugfs
  • creating debugfs files

Lab Exercises

  • creating proc files
  • sysfs and module parameters
  • creating and using debugfs files

Kernel Debugging

  • GDB and the kernel
  • KGDB
  • KDB
  • printk
  • console
  • Magic SysRq
  • strace

Lab Exercises

  • Examining kernel state with GDB.
  • Kernel deadlocks
  • Kernel memory leaks
  • Magic SysRq
  • KDB

Kernel Performance

  • Interrupt response
  • scheduling
  • preemption
  • rt-preempt
  • benchmarking
  • tools

Lab Exercises

  • LTTng
  • oprofile
  • page faults
  • timer precision
  • rt-preempt

Kernel Errors

  • oops
  • logging daemon
  • dmesg
  • panic
  • dumps and crashes

Lab Exercises

  • Working with an Oops
  • Working with a panic

Optional: All attendees will get a Linux laptop to be used during the class. You have the option of purchasing this laptop with an additional course fee.

On-site: If you would like to arrange an on-site class, please contact us at Fee: $1599 per student (includes all class materials)

Public class schedule: Please see dates on our calendar page.
Enrollment Form
Receive Announcements & Linux Tips
Linux is a registered trademark of Linus Torvalds.