Loading...
Searching...
No Matches
spdk_bdev Struct Reference
Collaboration diagram for spdk_bdev:

Data Structures

struct  __bdev_internal_fields
 Fields that are used internally by the bdev subsystem. More...
 

Public Member Functions

 TAILQ_HEAD (spdk_bdev_aliases_list, spdk_bdev_alias) aliases
 Unique aliases for this block device.
 

Data Fields

void * ctxt
 User context passed in by the backend.
 
char * name
 Unique name for this block device.
 
char * product_name
 Unique product name for this kind of block device.
 
int write_cache
 write cache enabled, not used at the moment
 
uint32_t blocklen
 Size in bytes of a logical block for the backend.
 
uint32_t phys_blocklen
 Size in bytes of a physical block for the backend.
 
uint64_t blockcnt
 Number of blocks.
 
bool split_on_write_unit
 Specifies whether the write_unit_size is mandatory or only advisory.
 
uint32_t write_unit_size
 Number of blocks required for write.
 
uint16_t acwu
 Atomic compare & write unit.
 
uint8_t required_alignment
 Specifies an alignment requirement for data buffers associated with an spdk_bdev_io.
 
bool split_on_optimal_io_boundary
 Specifies whether the optimal_io_boundary is mandatory or only advisory.
 
uint32_t optimal_io_boundary
 Optimal I/O boundary in blocks, or 0 for no value reported.
 
uint32_t max_segment_size
 Max io size in bytes of a single segment.
 
uint32_t max_num_segments
 
uint32_t max_unmap
 
uint32_t max_unmap_segments
 
uint32_t max_write_zeroes
 
uint32_t max_copy
 Maximum copy size in unit of logical block Should be set explicitly when backing device support copy command.
 
uint32_t max_rw_size
 Maximum number of blocks in a single read/write I/O.
 
struct spdk_uuid uuid
 UUID for this bdev.
 
uint32_t md_len
 Size in bytes of a metadata for the backend.
 
bool md_interleave
 Specify metadata location and set to true if metadata is interleaved with block data or false if metadata is separated with block data.
 
enum spdk_dif_type dif_type
 DIF type for this bdev.
 
enum spdk_dif_pi_format dif_pi_format
 DIF protection information format for this bdev.
 
bool dif_is_head_of_md
 
uint32_t dif_check_flags
 Specify whether each DIF check type is enabled.
 
bool zoned
 Specify whether bdev is zoned device.
 
uint64_t zone_size
 Default size of each zone (in blocks).
 
uint32_t max_zone_append_size
 Maximum zone append data transfer size (in blocks).
 
uint32_t max_open_zones
 Maximum number of open zones.
 
uint32_t max_active_zones
 Maximum number of active zones.
 
uint32_t optimal_open_zones
 Optimal number of open zones.
 
bool media_events
 Specifies whether bdev supports media management events.
 
union spdk_bdev_nvme_ctratt ctratt
 Specifies the bdev nvme controller attributes.
 
uint16_t reset_io_drain_timeout
 
struct { 
 
   uint32_t   id_valid: 1 
 Is numa.id valid? Needed to know whether numa.id == 0 was explicitly set by bdev module or implicitly set when calloc()'ing the structure.
 
   int32_t   id: 31 
 NUMA node ID for the bdev.
 
numa 
 
struct spdk_bdev_module *const struct spdk_bdev_fn_tablefn_table
 Pointer to the bdev module that registered this bdev.
 
struct spdk_bdev::__bdev_internal_fields internal
 

Field Documentation

◆ dif_pi_format

enum spdk_dif_pi_format spdk_bdev::dif_pi_format

DIF protection information format for this bdev.

Note that this field is valid only if there is metadata and dif_type is not SPDK_DIF_DISABLE.

◆ dif_type

enum spdk_dif_type spdk_bdev::dif_type

DIF type for this bdev.

Note that this field is valid only if there is metadata.

◆ fn_table

struct spdk_bdev_module* const struct spdk_bdev_fn_table* spdk_bdev::fn_table

Pointer to the bdev module that registered this bdev.

function table for all LUN ops

◆ max_rw_size

uint32_t spdk_bdev::max_rw_size

Maximum number of blocks in a single read/write I/O.

Requests exceeding this value will be split by the bdev layer.

◆ max_segment_size

uint32_t spdk_bdev::max_segment_size

Max io size in bytes of a single segment.

Note: both max_segment_size and max_num_segments should be zero or non-zero.

◆ md_interleave

bool spdk_bdev::md_interleave

Specify metadata location and set to true if metadata is interleaved with block data or false if metadata is separated with block data.

Note that this field is valid only if there is metadata.

◆ required_alignment

uint8_t spdk_bdev::required_alignment

Specifies an alignment requirement for data buffers associated with an spdk_bdev_io.

0 = no alignment requirement >0 = alignment requirement is 2 ^ required_alignment. bdev layer will automatically double buffer any spdk_bdev_io that violates this alignment, before the spdk_bdev_io is submitted to the bdev module.

◆ split_on_optimal_io_boundary

bool spdk_bdev::split_on_optimal_io_boundary

Specifies whether the optimal_io_boundary is mandatory or only advisory.

If set to true, the bdev layer will split READ and WRITE I/O that span the optimal_io_boundary before submitting them to the bdev module.

Note that this field cannot be used to force splitting of UNMAP, WRITE_ZEROES or FLUSH I/O.

◆ split_on_write_unit

bool spdk_bdev::split_on_write_unit

Specifies whether the write_unit_size is mandatory or only advisory.

If set to true, the bdev layer will split WRITE I/O that span the write_unit_size before submitting them to the bdev module.

This field takes precedence over split_on_optimal_io_boundary for WRITE I/O if both are set to true.

Note that this field cannot be used to force splitting of UNMAP, WRITE_ZEROES or FLUSH I/O.

◆ uuid

struct spdk_uuid spdk_bdev::uuid

UUID for this bdev.

If not provided, it will be generated by bdev layer.


The documentation for this struct was generated from the following file: