Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\blk-mq.c Create Date:2022-07-28 17:08:57
Last Modify:2020-03-17 23:18:05 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:__blk_mq_complete_request

Proto:static void __blk_mq_complete_request(struct request *rq)

Type:void

Parameter:

TypeParameterName
struct request *rq
562  ctx = mq_ctx
563  q = q
564  bool shared = false
567  WRITE_ONCE(state, MQ_RQ_COMPLETE)
577  If nr_hw_queues == 1 Then
578  __blk_complete_request(rq)
579  Return
586  If op and common flags & REQ_HIPRI || Not Determine whether a bit is set(complete on same CPU-group , & * various queue flags, see QUEUE_* below) Then
588  complete(rq)
589  Return
592  cpu = get_cpu()
593  If Not Determine whether a bit is set(rce complete on same CPU , & * various queue flags, see QUEUE_* below) Then shared = cpus_share_cache(cpu, cpu)
596  If cpu != cpu && Not shared && cpu_online(cpu) Then
597  func = __blk_mq_complete_request_remote
598  info = rq
599  flags = 0
600  smp_call_function_single_async(): Run an asynchronous function on a* specific CPU.*@cpu: The CPU to run on.*@csd: Pre-allocated and setup data structure* Like smp_call_function_single(), but the call is asynchonous and
601  Else
602  complete(rq)
604  put_cpu()
Caller
NameDescribe
blk_mq_complete_requestlk_mq_complete_request - end I/O on a request*@rq: the request being processed* Description:* Ends all I/O on a request. It does not handle partial completions.* The actual completion happens out-of-order, through a IPI handler.