spdk_bdev::__bdev_internal_fields Struct Reference

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

Collaboration diagram for spdk_bdev::__bdev_internal_fields:

Data Structures

union  __bdev_internal_claim
 Which module has claimed this bdev. More...
 

Public Member Functions

 TAILQ_HEAD (, spdk_bdev_desc) open_descs
 List of open descriptors for this block device.
 
 TAILQ_ENTRY (spdk_bdev) link
 

Data Fields

struct spdk_bdev_qos * qos
 Quality of service parameters.
 
bool qos_mod_in_progress
 True if the state of the QoS is being modified.
 
struct spdk_spinlock spinlock
 SPDK spinlock protecting many of the internal fields of this structure. More...
 
enum spdk_bdev_status status
 The bdev status.
 
uint32_t examine_in_progress
 How many bdev_examine() calls are iterating claim.v2.claims. More...
 
enum spdk_bdev_claim_type claim_type
 The claim type: used in conjunction with claim. More...
 
union spdk_bdev::__bdev_internal_fields::__bdev_internal_claim claim
 
spdk_bdev_unregister_cb unregister_cb
 Callback function that will be called after bdev destruct is completed.
 
void * unregister_ctx
 Unregister call context.
 
struct spdk_thread * unregister_td
 Thread that issued the unregister. More...
 
struct spdk_bdev_ioreset_in_progress
 points to a reset bdev_io if one is in progress.
 
struct spdk_poller * qd_poller
 poller for tracking the queue_depth of a device, NULL if not tracking
 
struct spdk_bdev_desc * qd_desc
 open descriptor to use qd_poller safely
 
uint64_t period
 period at which we poll for queue depth information
 
uint64_t new_period
 new period to be used to poll for queue depth information
 
uint64_t temporary_queue_depth
 used to aggregate queue depth while iterating across the bdev's open channels
 
uint64_t measured_queue_depth
 queue depth as calculated the last time the telemetry poller checked.
 
uint64_t io_time
 most recent value of ticks spent performing I/O. More...
 
uint64_t weighted_io_time
 weighted time performing I/O. More...
 
struct spdk_bdev_io_statstat
 accumulated I/O statistics for previously deleted channels of this bdev
 
bool qd_poll_in_progress
 true if tracking the queue_depth of a device is in progress
 
bool histogram_enabled
 histogram enabled on this bdev
 
bool histogram_in_progress
 
lba_range_tailq_t locked_ranges
 Currently locked ranges for this bdev. More...
 
lba_range_tailq_t pending_locked_ranges
 Pending locked ranges for this bdev. More...
 
struct spdk_bdev_name bdev_name
 Bdev name used for quick lookup.
 

Detailed Description

Fields that are used internally by the bdev subsystem.

Bdev modules must not read or write to these fields.

Field Documentation

◆ claim_type

enum spdk_bdev_claim_type spdk_bdev::__bdev_internal_fields::claim_type

The claim type: used in conjunction with claim.

Must hold spinlock on all updates.

◆ examine_in_progress

uint32_t spdk_bdev::__bdev_internal_fields::examine_in_progress

How many bdev_examine() calls are iterating claim.v2.claims.

When non-zero claims that are released will be cleared but remain on the claims list until bdev_examine() finishes. Must hold spinlock on all updates.

◆ io_time

uint64_t spdk_bdev::__bdev_internal_fields::io_time

most recent value of ticks spent performing I/O.

Used to calculate the weighted time doing I/O

◆ locked_ranges

lba_range_tailq_t spdk_bdev::__bdev_internal_fields::locked_ranges

Currently locked ranges for this bdev.

Used to populate new channels.

◆ pending_locked_ranges

lba_range_tailq_t spdk_bdev::__bdev_internal_fields::pending_locked_ranges

Pending locked ranges for this bdev.

These ranges are not currently locked due to overlapping with another locked range.

◆ spinlock

struct spdk_spinlock spdk_bdev::__bdev_internal_fields::spinlock

SPDK spinlock protecting many of the internal fields of this structure.

If multiple locks need to be held, the following order must be used: g_bdev_mgr.spinlock bdev->internal.spinlock bdev_desc->spinlock bdev_module->internal.spinlock

◆ unregister_td

struct spdk_thread* spdk_bdev::__bdev_internal_fields::unregister_td

Thread that issued the unregister.

The cb must be called on this thread.

◆ weighted_io_time

uint64_t spdk_bdev::__bdev_internal_fields::weighted_io_time

weighted time performing I/O.

Equal to measured_queue_depth * period


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