函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\events\core.c Create Date:2022-07-27 14:55:15
Last Modify:2022-05-20 07:50:19 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:perf_mmap_fault

函数原型:static vm_fault_t perf_mmap_fault(struct vm_fault *vmf)

返回类型:vm_fault_t

参数:

类型参数名称
struct vm_fault *vmf
5518  event等于private_data
5520  ret等于VM_FAULT_SIGBUS
5522  如果FAULT_FLAG_xxx flags 按位与Fault was mkwrite of existing pte
5523  如果Logical page offset based on vma 恒等于0则ret等于0
5525  返回:ret
5528  _read_lock() - mark the beginning of an RCU read-side critical section* When synchronize_rcu() is invoked on one CPU while other CPUs* are within RCU read-side critical sections, then the* synchronize_rcu() is guaranteed to block until after all the other
5529  rb等于cu_dereference() - fetch RCU-protected pointer for dereferencing*@p: The pointer to read, prior to dereferencing* This is a simple wrapper around rcu_dereference_check().(rb)
5530  如果非rb则转到:unlock
5533  如果Logical page offset based on vma FAULT_FLAG_xxx flags 按位与Fault was a write access 则转到:unlock
5536  ->fault handlers should return a* page here, unless VM_FAULT_NOPAGE* is set (which is also implied by* VM_FAULT_ERROR).等于perf_mmap_to_page(rb, Logical page offset based on vma )
5537  如果非->fault handlers should return a* page here, unless VM_FAULT_NOPAGE* is set (which is also implied by* VM_FAULT_ERROR).则转到:unlock
5540  get_page(->fault handlers should return a* page here, unless VM_FAULT_NOPAGE* is set (which is also implied by* VM_FAULT_ERROR).)
5541  mapping等于f_mapping
5542  index等于Logical page offset based on vma
5544  ret等于0
5545  unlock :
5546  _read_unlock() - marks the end of an RCU read-side critical section.* In most situations, rcu_read_unlock() is immune from deadlock.* However, in kernels built with CONFIG_RCU_BOOST, rcu_read_unlock()
5548  返回:ret