/** * block_touch_buffer - mark a buffer accessed * @bh: buffer_head being touched * * Called from touch_buffer().
*/
DEFINE_EVENT(block_buffer, block_touch_buffer,
TP_PROTO(struct buffer_head *bh),
TP_ARGS(bh)
);
/** * block_dirty_buffer - mark a buffer dirty * @bh: buffer_head being dirtied * * Called from mark_buffer_dirty().
*/
DEFINE_EVENT(block_buffer, block_dirty_buffer,
TP_PROTO(struct buffer_head *bh),
TP_ARGS(bh)
); #endif/* CONFIG_BUFFER_HEAD */
/** * block_rq_requeue - place block IO request back on a queue * @rq: block IO operation request * * The block operation request @rq is being placed back into queue * @q. For some reason the request was not completed and needs to be * put back in the queue.
*/
TRACE_EVENT(block_rq_requeue,
/** * block_rq_complete - block IO operation completed by device driver * @rq: block operations request * @error: status code * @nr_bytes: number of completed bytes * * The block_rq_complete tracepoint event indicates that some portion * of operation request has been completed by the device driver. If * the @rq->bio is %NULL, then there is absolutely no additional work to * do for the request. If @rq->bio is non-NULL then there is * additional work required to complete the request.
*/
DEFINE_EVENT(block_rq_completion, block_rq_complete,
/** * block_rq_error - block IO operation error reported by device driver * @rq: block operations request * @error: status code * @nr_bytes: number of completed bytes * * The block_rq_error tracepoint event indicates that some portion * of operation request has failed as reported by the device driver.
*/
DEFINE_EVENT(block_rq_completion, block_rq_error,
/** * 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),
TP_ARGS(rq)
);
/** * block_bio_complete - completed all work on the block operation * @q: queue holding the block operation * @bio: block operation completed * * This tracepoint indicates there is no further work to do on this * block IO operation @bio.
*/
TRACE_EVENT(block_bio_complete,
TP_PROTO(struct request_queue *q, struct bio *bio),
/** * block_bio_backmerge - merging block operation to the end of an existing operation * @bio: new block operation to merge * * Merging block request @bio to the end of an existing block request.
*/
DEFINE_EVENT(block_bio, block_bio_backmerge,
TP_PROTO(struct bio *bio),
TP_ARGS(bio)
);
/** * block_bio_frontmerge - merging block operation to the beginning of an existing operation * @bio: new block operation to merge * * Merging block IO operation @bio to the beginning of an existing block request.
*/
DEFINE_EVENT(block_bio, block_bio_frontmerge,
TP_PROTO(struct bio *bio),
TP_ARGS(bio)
);
/** * block_bio_queue - putting new block IO operation in queue * @bio: new block operation * * About to place the block IO operation @bio into queue @q.
*/
DEFINE_EVENT(block_bio, block_bio_queue,
TP_PROTO(struct bio *bio),
TP_ARGS(bio)
);
/** * block_getrq - get a free request entry in queue for block IO operations * @bio: pending block IO operation (can be %NULL) * * A request struct has been allocated to handle the block IO operation @bio.
*/
DEFINE_EVENT(block_bio, block_getrq,
TP_PROTO(struct bio *bio),
TP_ARGS(bio)
);
/** * blk_zone_append_update_request_bio - update bio sector after zone append * @rq: the completed request that sets the bio sector * * Update the bio's bi_sector after a zone append command has been completed.
*/
DEFINE_EVENT(block_rq, blk_zone_append_update_request_bio,
TP_PROTO(struct request *rq),
TP_ARGS(rq)
);
/** * block_plug - keep operations requests in request queue * @q: request queue to plug * * Plug the request queue @q. Do not allow block operation requests * to be sent to the device driver. Instead, accumulate requests in * the queue to improve throughput performance of the block device.
*/
TRACE_EVENT(block_plug,
/** * block_unplug - release of operations requests in request queue * @q: request queue to unplug * @depth: number of requests just added to the queue * @explicit: whether this was an explicit unplug, or one from schedule() * * Unplug request queue @q because device driver is scheduled to work * on elements in the request queue.
*/
DEFINE_EVENT(block_unplug, block_unplug,
/** * block_split - split a single bio struct into two bio structs * @bio: block operation being split * @new_sector: The starting sector for the new bio * * The bio request @bio needs to be split into two bio requests. The newly * created @bio request starts at @new_sector. This split may be required due to * hardware limitations such as operation crossing device boundaries in a RAID * system.
*/
TRACE_EVENT(block_split,
TP_PROTO(struct bio *bio, unsignedint new_sector),
/** * block_bio_remap - map request for a logical device to the raw device * @bio: revised operation * @dev: original device for the operation * @from: original sector for the operation * * An operation for a logical device has been mapped to the * raw block device.
*/
TRACE_EVENT(block_bio_remap,
TP_PROTO(struct bio *bio, dev_t dev, sector_t from),
/** * block_rq_remap - map request for a block operation request * @rq: block IO operation request * @dev: device for the operation * @from: original sector for the operation * * The block operation request @rq in @q has been remapped. The block * operation request @rq holds the current information and @from hold * the original sector.
*/
TRACE_EVENT(block_rq_remap,
/** * blkdev_zone_mgmt - Execute a zone management operation on a range of zones * @bio: The block IO operation sent down to the device * @nr_sectors: The number of sectors affected by this operation * * Execute a zone management operation on a specified range of zones. This * range is encoded in %nr_sectors, which has to be a multiple of the zone * size.
*/
TRACE_EVENT(blkdev_zone_mgmt,
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.