函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\kvm.c Create Date:2022-07-27 09:43:43
Last Modify:2020-03-16 21:33:46 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:@interrupt_kernel: Is this called from a routine which interrupts the kernel* (other than user space)?

函数原型:void kvm_async_pf_task_wait(unsigned int token, int interrupt_kernel)

返回类型:void

参数:

类型参数名称
unsigned inttoken
intinterrupt_kernel
105  key等于hash_32(token, KVM_TASK_SLEEP_HASHBITS)
106  b等于async_pf_sleepers[key]
108  DECLARE_SWAITQUEUE(wait)
110  _irq_enter - inform RCU that current CPU is entering irq away from idle* Enter an interrupt handler, which might possibly result in exiting* idle mode, in other words, entering the mode in which read-side critical* sections can occur
112  raw_spin_lock( & lock)
113  e等于_find_apf_task(b, token)
114  如果e
116  hlist_del( & link)
117  释放内存
118  raw_spin_unlock( & lock)
120  _irq_exit - inform RCU that current CPU is exiting irq towards idle* Exit from an interrupt handler, which might possibly result in entering* idle mode, in other words, leaving the mode in which read-side critical* sections can occur
121  返回
124  token等于token
125  cpu等于当前cpu ID()
126  halted等于是空闲任务或如果IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',* 0 otherwise.(CONFIG_PREEMPT_COUNT)则抢占计数值大于1或rcu_preempt_depth()否则interrupt_kernel
130  init_swait_queue_head( & wq)
131  hlist_add_head( & link, & list)
132  raw_spin_unlock( & lock)
134  循环
135  如果非haltedprepare_to_swait_exclusive( & wq, & wait, 深度睡眠态)
137  如果hlist_unhashed( & link)则退出
140  _irq_exit - inform RCU that current CPU is exiting irq towards idle* Exit from an interrupt handler, which might possibly result in entering* idle mode, in other words, leaving the mode in which read-side critical* sections can occur
142  如果非halted
143  开中断()
144  schedule()
145  禁止中断()
146  否则
151  禁止中断()
154  _irq_enter - inform RCU that current CPU is entering irq away from idle* Enter an interrupt handler, which might possibly result in exiting* idle mode, in other words, entering the mode in which read-side critical* sections can occur
156  如果非haltedfinish_swait( & wq, & wait)
159  _irq_exit - inform RCU that current CPU is exiting irq towards idle* Exit from an interrupt handler, which might possibly result in entering* idle mode, in other words, leaving the mode in which read-side critical* sections can occur
160  返回
调用者
名称描述
do_async_page_fault