Fields that are used internally by the bdev subsystem. More...
#include <bdev_module.h>

Public Member Functions | |
| TAILQ_ENTRY (spdk_bdev_io) link | |
| Queue entry used in several cases: | |
| STAILQ_ENTRY (spdk_bdev_io) buf_link | |
| Entry to the list need_buf of struct spdk_bdev. | |
| TAILQ_ENTRY (spdk_bdev_io) ch_link | |
| Entry to the list io_submitted of struct spdk_bdev_channel. | |
Data Fields | |
| struct spdk_bdev_channel * | ch |
| The bdev I/O channel that this was handled on. | |
| uint8_t | reserved [8] |
| struct spdk_bdev_desc * | desc |
| The bdev descriptor that was used when submitting this I/O. | |
| spdk_bdev_io_completion_cb | cb |
| User function that will be called when this completes. | |
| void * | caller_ctx |
| Context that will be passed to the completion callback. | |
| uint64_t | submit_tsc |
| Current tsc at submit time. | |
| union { | |
| struct { | |
| uint32_t cdw0 | |
| NVMe completion queue entry DW0. | |
| uint8_t sct | |
| NVMe status code type. | |
| uint8_t sc | |
| NVMe status code. | |
| } nvme | |
| struct { | |
| uint8_t sc | |
| SCSI status code. | |
| uint8_t sk | |
| SCSI sense key. | |
| uint8_t asc | |
| SCSI additional sense code. | |
| uint8_t ascq | |
| SCSI additional sense code qualifier. | |
| } scsi | |
| Only valid when status is SPDK_BDEV_IO_STATUS_SCSI_ERROR. | |
| int aio_result | |
| Only valid when status is SPDK_BDEV_IO_STATUS_AIO_ERROR. | |
| } | error |
| Error information from a device. | |
| bool | in_submit_request |
| Set to true while the bdev module submit_request function is in progress. | |
| int8_t | status |
| Status for the IO. | |
| bool | split |
| Indicates whether the IO is split. | |
| uint8_t | retry_state |
| Retry state (resubmit, re-pull, re-push, etc.) | |
| bool | has_accel_sequence |
| Indicates that the IO is associated with an accel sequence. | |
| void * | buf |
| bdev allocated memory associated with this request | |
| uint64_t | buf_len |
| requested size of the buffer associated with this I/O | |
| struct iovec | bounce_iov |
| if the request is double buffered, store original request iovs here | |
| struct iovec | bounce_md_iov |
| struct iovec | orig_md_iov |
| struct iovec * | orig_iovs |
| int | orig_iovcnt |
| spdk_bdev_io_get_aux_buf_cb | get_aux_buf_cb |
| Callback for when the aux buf is allocated. | |
| spdk_bdev_io_get_buf_cb | get_buf_cb |
| Callback for when buf is allocated. | |
| struct spdk_iobuf_entry | iobuf |
| iobuf queue entry | |
| struct spdk_bdev_io_wait_entry | waitq_entry |
| Enables queuing parent I/O when no bdev_ios available for split children. | |
| struct spdk_memory_domain * | memory_domain |
| Memory domain and its context passed by the user in ext API. | |
| void * | memory_domain_ctx |
| struct spdk_accel_sequence * | accel_sequence |
| void(* | data_transfer_cpl )(void *ctx, int rc) |
| Data transfer completion callback. | |
Fields that are used internally by the bdev subsystem.
Bdev modules must not read or write to these fields.
| spdk_bdev_io::__bdev_io_internal_fields::TAILQ_ENTRY | ( | spdk_bdev_io | ) |
Queue entry used in several cases:
| bool spdk_bdev_io::__bdev_io_internal_fields::in_submit_request |
Set to true while the bdev module submit_request function is in progress.
This is used to decide whether spdk_bdev_io_complete() can complete the I/O directly or if completion must be deferred via an event.
| uint8_t spdk_bdev_io::__bdev_io_internal_fields::sc |
NVMe status code.
SCSI status code.
| uint64_t spdk_bdev_io::__bdev_io_internal_fields::submit_tsc |
Current tsc at submit time.
Used to calculate latency at completion.