include/trace/events/block.h

Source file repositories/reference/linux-study-clean/include/trace/events/block.h

File Facts

System
Linux kernel
Corpus path
include/trace/events/block.h
Extension
.h
Size
20153 bytes
Lines
744
Domain
Repository Root And Misc
Bucket
include
Inferred role
Repository Root And Misc: implementation source
Status
source implementation candidate

Why This File Exists

Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.

Dependency Surface

Detected Declarations

Annotated Snippet

if (__entry->is_reserved) {
			__entry->nr_tags = is_sched_tag ?
					   hctx->sched_tags->nr_reserved_tags :
					   hctx->tags->nr_reserved_tags;
		} else {
			if (is_sched_tag)
				__entry->nr_tags = hctx->sched_tags->nr_tags -
						   hctx->sched_tags->nr_reserved_tags;
			else
				__entry->nr_tags = hctx->tags->nr_tags -
						   hctx->tags->nr_reserved_tags;
		}

	),

	TP_printk("%d,%d hctx=%u starved on %s%s tags (depth=%u)",
		  MAJOR(__entry->dev), MINOR(__entry->dev),
		  __entry->hctx_id,
		  __entry->is_sched_tag ? "scheduler" : "hardware",
		  __entry->is_reserved ? " reserved" : "",
		  __entry->nr_tags)
);

/**
 * block_rq_insert - insert block operation request into queue
 * @rq: block IO operation request
 *
 * Called immediately before block operation request @rq is inserted
 * into queue @q.  The fields in the operation request @rq struct can
 * be examined to determine which device and sectors the pending
 * operation would access.
 */
DEFINE_EVENT(block_rq, block_rq_insert,

	TP_PROTO(struct request *rq),

	TP_ARGS(rq)
);

/**
 * block_rq_issue - issue pending block IO request operation to device driver
 * @rq: block IO operation request
 *
 * Called when block operation request @rq from queue @q is sent to a
 * device driver for processing.
 */
DEFINE_EVENT(block_rq, block_rq_issue,

	TP_PROTO(struct request *rq),

	TP_ARGS(rq)
);

/**
 * block_rq_merge - merge request with another one in the elevator
 * @rq: block IO operation request
 *
 * Called when block operation request @rq from queue @q is merged to another
 * request queued in the elevator.
 */
DEFINE_EVENT(block_rq, block_rq_merge,

	TP_PROTO(struct request *rq),

	TP_ARGS(rq)
);

/**
 * block_io_start - insert a request for execution
 * @rq: block IO operation request
 *
 * Called when block operation request @rq is queued for execution
 */
DEFINE_EVENT(block_rq, block_io_start,

	TP_PROTO(struct request *rq),

	TP_ARGS(rq)
);

/**
 * block_io_done - block IO operation request completed
 * @rq: block IO operation request
 *
 * Called when block operation request @rq is completed
 */
DEFINE_EVENT(block_rq, block_io_done,

	TP_PROTO(struct request *rq),

Annotation

Implementation Notes