Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\futex.c Create Date:2022-07-28 10:53:49
Last Modify:2020-03-17 15:28:32 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:__unqueue_futex() - Remove the futex_q from its futex_hash_bucket*@q: The futex_q to unqueue* The q->lock_ptr must not be NULL and must be held by the caller.

Proto:static void __unqueue_futex(struct futex_q *q)

Type:void

Parameter:

TypeParameterName
struct futex_q *q
1509  If Use of ({0;}) because WARN_ON_SMP(x) may be used either as* a stand alone line statement or as a condition in an if ()* statement.* A simple "0" would cause gcc to give a "statement has no effect"* warning.(!lock_ptr) || WARN_ON(plist_node_empty - return !0 if plist_node is not on a list*@node: &struct plist_node pointer) Then Return
1511  lockdep_assert_held(lock_ptr)
1513  hb = 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.(lock_ptr, structfutex_hash_bucket, lock)
1514  plist_del - Remove a @node from plist.*@node: &struct plist_node pointer - entry to be removed*@head: &struct plist_head pointer - list head
1515  Reflects a waiter being removed from the waitqueue by wakeup* paths.
Caller
NameDescribe
mark_wake_futexThe hash bucket lock must be held when this is called.* Afterwards, the futex_q must not be accessed. Callers* must ensure to later call wake_up_q() for the actual* wakeups to occur.
requeue_pi_wake_futexqueue_pi_wake_futex() - Wake a task that acquired the lock during requeue*@q: the futex_q*@key: the key of the requeue target futex*@hb: the hash_bucket of the requeue target futex* During futex_requeue, with requeue_pi=1, it is possible to acquire the
unqueue_mequeue_me() - Remove the futex_q from its futex_hash_bucket*@q: The futex_q to unqueue* The q->lock_ptr must not be held by the caller
unqueue_me_piPI futexes can not be requeued and must remove themself from the* hash bucket. The hash bucket lock (i.e. lock_ptr) is held on entry* and dropped here.