The Linux Kernel Tracepoint API

Jason Baron


William Cohen


This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

For more details see the file COPYING in the source distribution of Linux.

Table of Contents

1. Introduction
2. IRQ
trace_irq_handler_entry — called immediately before the irq action handler
trace_irq_handler_exit — called immediately after the irq action handler returns
trace_softirq_entry — called immediately before the softirq handler
trace_softirq_exit — called immediately after the softirq handler returns
trace_softirq_raise — called immediately when a softirq is raised
trace_signal_generate — called when a signal is generated
trace_signal_deliver — called when a signal is delivered
4. Block IO
trace_block_touch_buffer — mark a buffer accessed
trace_block_dirty_buffer — mark a buffer dirty
trace_block_rq_abort — abort block operation request
trace_block_rq_requeue — place block IO request back on a queue
trace_block_rq_complete — block IO operation completed by device driver
trace_block_rq_insert — insert block operation request into queue
trace_block_rq_issue — issue pending block IO request operation to device driver
trace_block_bio_bounce — used bounce buffer when processing block operation
trace_block_bio_complete — completed all work on the block operation
trace_block_bio_backmerge — merging block operation to the end of an existing operation
trace_block_bio_frontmerge — merging block operation to the beginning of an existing operation
trace_block_bio_queue — putting new block IO operation in queue
trace_block_getrq — get a free request entry in queue for block IO operations
trace_block_sleeprq — waiting to get a free request entry in queue for block IO operation
trace_block_plug — keep operations requests in request queue
trace_block_unplug — release of operations requests in request queue
trace_block_split — split a single bio struct into two bio structs
trace_block_bio_remap — map request for a logical device to the raw device
trace_block_rq_remap — map request for a block operation request
5. Workqueue
trace_workqueue_queue_work — called when a work gets queued
trace_workqueue_activate_work — called when a work gets activated
trace_workqueue_execute_start — called immediately before the workqueue callback
trace_workqueue_execute_end — called immediately after the workqueue callback