rqs = &khd->rqs[khd->cur_domain]; if (sbitmap_any_bit_set(&khd->kcq_map[khd->cur_domain])) { nr = kyber_get_domain_token(kqd, khd, hctx); if (nr >= 0) { kyber_flush_busy_kcqs(khd, khd->cur_domain, rqs); rq = list_first_entry(rqs, struct request, queuelist); kh...
blk_cleanup_queue(uninit_q); return q; } EXPORT_SYMBOL(blk_init_queue_node); struct request_queue * blk_init_allocated_queue(struct request_queue *q, request_fn_proc *rfn, { if (!q) return NULL; q->fq = blk_alloc_flush_queue(q, NUMA_NO_NODE, 0); if (!q->fq) return NULL;...
blk_mq_clear_flush_rq_mapping(set->tags[hctx_idx], set->queue_depth,flush_rq); if(blk_queue_init_done(q)) blk_mq_clear_flush_rq_mapping(set->tags[hctx_idx], set->queue_depth,flush_rq); if(set->ops->exit_request) set->ops->exit_request(set,flush_rq,hctx_idx); ...
virt_to_phys(info->queue) >> VIRTIO_PCI_QUEUE_ADDR_SHIFT将虚拟机的虚拟机地址转换成物理地址,偏移VIRTIO_PCI_QUEUE_ADDR_SHIFT(12位)得到页号。 iowrite将vring_virtqueue在虚拟机内的物理页号写到寄存器VIRTIO_PCI_QUEUE_PFN,产生一个kvm_exit,QEMU端会捕获这个exit,并根据寄存器的地址将这个物理页号赋值给...
blk_do_flush(struct request_queue *q, struct request *rq){unsignedintfflags = q->flush_flags;/* may change, cache it */boolhas_flush = fflags & REQ_FLUSH, has_fua = fflags & REQ_FUA;booldo_preflush = has_flush && (rq->cmd_flags & REQ_FLUSH);booldo_postflush = has_flush &&...
初始化请求blk_rq_init 文章分类Java后端开发 blk_rq_init() 1. __get_request 2. blk_kick_flush 3. clone_old_rq 4. ide_prep_sense 5. scsi_ioctl_reset void blk_rq_init(struct request_queue *q, struct request *rq) { memset(rq, 0, sizeof(*rq));...
blk_freeze_queue(q);rq_qos_exit(q);blk_queue_flag_set(QUEUE_FLAG_DEAD, q);/* for synchronous bio-based driver finish in-flight integrity i/o */ blk_flush_integrity();/* @q won't process any more request, flush async actions */del...
> completed before calling the above blk_mq_run_hw_queue. Then queue can > be freed during the above blk_mq_run_hw_queue(). > > Fixes the issue by grab .q_usage_counter before calling > blk_mq_sched_insert_requests() in blk_mq_flush_plug_list(). This way is ...
[__BLK_TA_QUEUE]= {{"Q","queue"}, blk_log_generic }, [__BLK_TA_BACKMERGE]= {{"M","backmerge"}, blk_log_generic }, [__BLK_TA_FRONTMERGE]= {{"F","frontmerge"}, blk_log_generic }, [__BLK_TA_GETRQ]= {{"G","getrq"}, blk_log_generic }, ...
Expand DownExpand Up@@ -173,25 +174,25 @@ static int virtio_queue_rq(struct blk_mq_hw_ctx *hctx, struct request *req, vbr->req=req; if(req->cmd_flags&REQ_FLUSH) { vbr->out_hdr.type=VIRTIO_BLK_T_FLUSH; vbr->out_hdr.type=cpu_to_virtio32(vblk->vdev,VIRTIO_BLK_T_FLUSH);...