函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Schedule polling if it's not already scheduled. It's safe to call even from* hotpath because even though kthread_queue_delayed_work takes worker->lock* spinlock that spinlock is never contended due to poll_scheduled atomic* preventing such competition.

函数原型:static void psi_schedule_poll_work(struct psi_group *group, unsigned long delay)

返回类型:void

参数:

类型参数名称
struct psi_group *group
unsigned longdelay
561  如果atomic_cmpxchg( & poll_scheduled, 0, 1)不等于0则返回
564  _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
566  kworker等于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().(poll_kworker)
571  如果此条件成立可能性大(为编译器优化)(kworker)则kthread_queue_delayed_work - queue the associated kthread work* after a delay
573  否则atomic_set( & poll_scheduled, 0)
576  _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()
调用者
名称描述
psi_poll_work
psi_task_change