函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\blk-mq.c Create Date:2022-07-27 18:45:57
Last Modify:2020-03-17 23:18:05 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:blk_mq_free_rqs

函数原型:void blk_mq_free_rqs(struct blk_mq_tag_set *set, struct blk_mq_tags *tags, unsigned int hctx_idx)

返回类型:void

参数:

类型参数名称
struct blk_mq_tag_set *set
struct blk_mq_tags *tags
unsigned inthctx_idx
2020  如果rqsexit_request
2023 i小于nr_tags循环
2024  rq等于static_rqs[i]
2026  如果非rq则继续下一循环
2029  static_rqs[i] = NULL
2033  当非链表为空循环
2034  page等于list_first_entry - get the first element from a list*@ptr: the list head to take the element from.*@type: the type of the struct this is embedded in.*@member: the name of the list_head within the struct.* Note, that list is expected to be not empty.( & page_list, structpage, lru)
2035  删除链表项并重新初始化
2040  kmemleak_free - unregister a previously registered object*@ptr: pointer to beginning of the object* This function is called from the kernel allocators when an object (memory* block) is freed (kmem_cache_free, kfree, vfree etc.).
2041  __free_pages(page, 私有数据指针)
调用者
名称描述
blk_mq_alloc_rqs
blk_mq_free_map_and_requests
blk_mq_tag_update_depth
blk_mq_sched_free_tags
blk_mq_sched_free_requestsalled in either blk_queue_cleanup or elevator_switch, tagset* is required for freeing requests