struct nullb_zone { /* * Zone lock to prevent concurrent modification of a zone write * pointer position and condition: with memory backing, a write * command execution may sleep on memory allocation. For this case, * use mutex as the zone lock. Otherwise, use the spinlock for * locking the zone.
*/ union {
spinlock_t spinlock; struct mutex mutex;
}; enum blk_zone_type type; enum blk_zone_cond cond;
sector_t start;
sector_t wp; unsignedint len; unsignedint capacity;
};
struct nullb_device { struct nullb *nullb; struct config_group group; #ifdef CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION struct fault_config timeout_config; struct fault_config requeue_config; struct fault_config init_hctx_fault_config; #endif struct radix_tree_root data; /* data stored in the disk */ struct radix_tree_root cache; /* disk cache data */ unsignedlong flags; /* device flags */ unsignedint curr_cache; struct badblocks badblocks; bool badblocks_once; bool badblocks_partial_io;
unsignedlong size; /* device size in MB */ unsignedlong completion_nsec; /* time in ns to complete a request */ unsignedlong cache_size; /* disk cache size in MB */ unsignedlong zone_size; /* zone size in MB if device is zoned */ unsignedlong zone_capacity; /* zone capacity in MB if device is zoned */ unsignedint zone_nr_conv; /* number of conventional zones */ unsignedint zone_max_open; /* max number of open zones */ unsignedint zone_max_active; /* max number of active zones */ unsignedint zone_append_max_sectors; /* Max sectors per zone append command */ unsignedint submit_queues; /* number of submission queues */ unsignedint prev_submit_queues; /* number of submission queues before change */ unsignedint poll_queues; /* number of IOPOLL submission queues */ unsignedint prev_poll_queues; /* number of IOPOLL submission queues before change */ unsignedint home_node; /* home node for the device */ unsignedint queue_mode; /* block interface */ unsignedint blocksize; /* block size */ unsignedint max_sectors; /* Max sectors per command */ unsignedint irqmode; /* IRQ completion handler */ unsignedint hw_queue_depth; /* queue depth */ unsignedint index; /* index of the disk, only valid with a disk */ unsignedint mbps; /* Bandwidth throttle cap (in MB/s) */ bool blocking; /* blocking blk-mq device */ bool use_per_node_hctx; /* use per-node allocation for hardware context */ bool power; /* power on/off the device */ bool memory_backed; /* if data is stored in memory */ bool discard; /* if support discard */ bool zoned; /* if device is zoned */ bool zone_full; /* Initialize zones to be full */ bool virt_boundary; /* virtual boundary on/off for the device */ bool no_sched; /* no IO scheduler for the device */ bool shared_tags; /* share tag set between devices for blk-mq */ bool shared_tag_bitmap; /* use hostwide shared tags */ bool fua; /* Support FUA */ bool rotational; /* Fake rotational device */
};
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.