dma_drain_needed_fn *dma_drain_needed;conststructblk_mq_ops*mq_ops;/* sw queues */structblk_mq_ctx__percpu*queue_ctx;unsignedintnr_queues;unsignedintqueue_depth;/* hw dispatch queues */structblk_mq_hw_ctx**queue_hw_ctx;unsignedintnr_hw_queues;structbacking_dev_info*backing_dev_info;/...
vblk->disk = alloc_disk(1 << PART_BITS); memset(&vblk->tag_set, 0, sizeof(vblk->tag_set)); vblk->tag_set.ops = &virtio_mq_ops; vblk->tag_set.queue_depth = virtblk_queue_depth; vblk->tag_set.numa_node = NUMA_NO_NODE; vblk->tag_set.flags = BLK_MQ_F_SHOULD_MERGE...
blk_mq_exit_queue(q);/* @q is and will stay empty, shutdown and put */ blk_put_queue(q); } EXPORT_SYMBOL(blk_mq_destroy_queue);@@ -4029,6 +4026,7 @@ struct gendisk *__blk_mq_alloc_disk(struct blk_mq_tag_set *set, void *queuedata,disk...
基于blk-mq的块设备驱动初始化时,通过调用blk_mq_init_queue初始化IO请求队列(request_queue)。例如,scsi-mq驱动中,每次添加scsi设备(scsi_device)时都会调用blk_mq_init_queue接口来初始化scsi设备的请求队列。 blk_mq_init_queue:初始化IO请求队列--request_queue。函数的主要流程如下: 调用blk_alloc_queue_node...
$ lsblk-pvNAMETYPETRANSIZERQ-SIZEMQ/dev/vda disk virtio 10G2561# the device is identifiedas`vhost-vdpa-1`inthe host $ ls/sys/bus/vdpa/devices/vduse1/driver driver_override power subsystem uevent vhost-vdpa-1$ ls-l/dev/vhost-vdpa-1crw---.1root root511,0Feb1217:58/dev/vhost-vdpa-1#...
anymore $ lsblk -pv NAME TYPE TRAN SIZE RQ-SIZE MQ /dev/vda disk virtio 10G 256 1 # the device is identified as `vhost-vdpa-1` in the host $ ls /sys/bus/vdpa/devices/vduse1/ driver driver_override power subsystem uevent vhost-vdpa-1 $ ls -l /dev/vhost-vdpa-1 crw---....
@@ -427,7 +427,7 @@ aoeblk_gdalloc(void *vp) return; out_disk_cleanup: blk_cleanup_disk(gd); put_disk(gd); err_tagset: blk_mq_free_tag_set(set); err_mempool:2 changes: 1 addition & 1 deletion 2 drivers/block/aoe/aoedev.c Original file line numberDiff line numberDiff line...
err = blk_mq_alloc_tag_set(&vblk->tag_set); if (err) goto out_put_disk; q = blk_mq_init_queue(&vblk->tag_set); if (IS_ERR(q)) { err = -ENOMEM; goto out_free_tags; } vblk->disk->queue = q; q->queuedata = vblk; virtblk_name_format("vd", index, v...
return blk_mq_map_queue(q, REQ_OP_FLUSH, ctx)->fq; } static inline void __blk_get_queue(struct request_queue *q) { kobject_get(&q->kobj); } bool is_flush_rq(struct request *req); struct blk_flush_queue *blk_alloc_flush_queue(int node, int cmd_size, ...
CPU: i.MX8MQ rev2.1 1300 MHz (running at 800 MHz)CPU: Industrial temperature grade (-40C to 105C) at 53CReset cause: PORModel: NXP i.MX8MQ EVKDRAM: 3 GiBtcpc_init: Can't find device id=0x50setup_typec: tcpc init failed, err=-19MMC: FSL_SDHC: 0, FSL_SD...