函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\sched\core.c Create Date:2022-07-27 10:36:05
Last Modify:2022-05-22 13:40:38 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:wake_up_q

函数原型:void wake_up_q(struct wake_q_head *head)

返回类型:void

参数:

类型参数名称
struct wake_q_head *head
481  node等于first
483 node不等于WAKE_Q_TAIL循环
486  task等于container_of - cast a member of a structure out to the containing structure*@ptr: the pointer to the member.*@type: the type of the container struct this is embedded in.*@member: the name of the member within the struct.(node, structtask_struct, wake_q)
487  BUG_ON(!task)
489  node等于next
490  next = NULL
496  唤醒中断线程
497  put_task_struct(task)
调用者
名称描述
__mutex_unlock_slowpath
rwsem_down_read_slowpathWait for the read lock to be granted
rwsem_down_write_slowpathWait until we successfully acquire the write lock
rwsem_wakehandle waking up a waiter on the semaphore* - up_read/up_write has decremented the active part of count if we come here
rwsem_downgrade_wakedowngrade a write lock into a read lock* - caller incremented waiting part of count and discovered it still negative* - just wake up any readers at the front of the queue
rt_mutex_postunlockPerforms the wakeup of the the top-waiter and re-enables preemption.
futex_wakeWake up waiters matching bitset queued on this futex (uaddr).
futex_wake_opWake up all waiters hashed on the physical page that is mapped* to this virtual address:
futex_requeueex_requeue() - Requeue waiters from uaddr1 to uaddr2*@uaddr1: source futex user address*@flags: futex flags (FLAGS_SHARED, etc
cpu_stop_queue_workqueue @work to @stopper. if offline, @work is completed immediately
cpu_stop_queue_two_works
msgctl_downThis function handles some msgctl commands which require the rwsem* to be held in write mode.* NOTE: no locks must be held, the rwsem is taken inside this function.
do_msgsnd
do_msgrcv
freearyFree a semaphore set. freeary() is called with sem_ids.rwsem locked* as a writer and the spinlock for this semaphore set hold. sem_ids.rwsem* remains locked on exit.
semctl_setval
semctl_main
do_semtimedop
exit_semadd semadj values to semaphores, free undo structures
do_mq_timedsend
do_mq_timedreceive
freequeque() wakes up waiters on the sender and receiver waiting queue,* removes the message queue from message queue ID IDR, and cleans up all the* messages associated with this queue.* msg_ids.rwsem (writer) and the spinlock for this message queue are held