函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\zbud.c Create Date:2022-07-27 18:00:51
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:zbud_reclaim_page() - evicts allocations from a pool page and frees it*@pool: pool from which a page will attempt to be evicted*@retries: number of pages on the LRU list for which eviction will* be attempted before failing* zbud reclaim is different from

函数原型:int zbud_reclaim_page(struct zbud_pool *pool, unsigned int retries)

返回类型:int

参数:

类型参数名称
struct zbud_pool *pool
unsigned intretries
506  first_handle等于0, last_handle等于0
508  加自旋锁
509  如果非ops或非evict链表为空retries恒等于0则
511  自旋锁解锁
512  返回:负EINVAL
514 i小于retries循环
515  zhdr等于list_last_entry - get the last 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.( & lru, structzbud_header, lru)
516  删除链表项
517  删除链表项
519  under_reclaim = true
524  first_handle等于0
525  last_handle等于0
526  如果first_chunksfirst_handle等于Encodes the handle of a particular buddy within a zbud page* Pool lock should be held as this function accesses first|last_chunks
528  如果last_chunkslast_handle等于Encodes the handle of a particular buddy within a zbud page* Pool lock should be held as this function accesses first|last_chunks
530  自旋锁解锁
533  如果first_handle
534  ret等于evict(pool, first_handle)
535  如果ret则转到:next
538  如果last_handle
539  ret等于evict(pool, last_handle)
540  如果ret则转到:next
543  :
544  加自旋锁
545  under_reclaim = false
546  如果first_chunks恒等于0且last_chunks恒等于0则
552  pages_nr自减
554  返回:0
555  否则如果first_chunks恒等于0或last_chunks恒等于0则
560  否则
566  添加链表项
568  自旋锁解锁
569  返回:负EAGAIN
调用者
名称描述
zbud_zpool_shrink