Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\kyber-iosched.c Create Date:2022-07-28 17:52:11
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:kyber_bio_merge

Proto:static bool kyber_bio_merge(struct blk_mq_hw_ctx *hctx, struct bio *bio, unsigned int nr_segs)

Type:bool

Parameter:

TypeParameterName
struct blk_mq_hw_ctx *hctx
struct bio *bio
unsigned intnr_segs
568  khd = @sched_data: Pointer owned by the IO scheduler attached to a request* queue. It's up to the IO scheduler how to use this pointer.
569  ctx = This assumes per-cpu software queueing queues. They could be per-node* as well, for instance. For now this is hardcoded as-is. Note that we don't* care about preemption, since we know the ctx's are persistent. This does
570  kcq = kcqs[index_hw[@type: HCTX_TYPE_* flags. Type of hardware queue. ]]
571  sched_domain = kyber_sched_domain( bottom bits req flags, * top bits REQ_OP. Use * accessors.)
572  rq_list = rq_list[sched_domain]
575  spin_lock( & Used to ensure operations on rq_list and kcq_map to be an atmoic one.* Also protect the rqs on rq_list when merge.)
576  merged = Iterate list of requests and see if we can merge this bio with any* of them.
577  spin_unlock( & Used to ensure operations on rq_list and kcq_map to be an atmoic one.* Also protect the rqs on rq_list when merge.)
579  Return merged