函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\futex.c Create Date:2022-07-27 11:55:09
Last Modify:2020-03-17 15:28:32 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Walk curr->robust_list (very carefully, it's a userspace list!)* and mark any locks found there dead, and notify any waiters.* We silently return on any sign of list-walking problem.

函数原型:static void exit_robust_list(struct task_struct *curr)

返回类型:void

参数:

类型参数名称
struct task_struct *curr
3680  __userhead等于robust_list
3681  __userentry
3682  limit等于This limit protects against a deliberately circular list.* (Not worth introducing an rlimit for it)
3683  next_pi等于next_pi
3687  如果非futex_cmpxchg_enabled则返回
3694  如果Fetch a robust-list pointer. Bit 0 signals PI futexes:则返回
3699  如果Careful: we have to cast the result to the type of the pointer* for sign reasons(futex_offset, & This relative offset is set by user-space, it gives the kernel* the relative position of the futex field to examine. This way* we keep userspace flexible, to freely shape its data-structure,* without hardcoding any particular offset into the kernel:)则返回
3705  如果Fetch a robust-list pointer. Bit 0 signals PI futexes:则返回
3708  next_entry = NULL
3709 entry不等于The head of the list. Points back to itself if empty:循环
3714  rc等于Fetch a robust-list pointer. Bit 0 signals PI futexes:
3719  如果entry不等于pending
3724  如果rc则返回
3726  entry等于next_entry
3727  pi等于next_pi
3731  如果非limit先自减则退出
3734  cond_resched()
3737  如果pending
3738  Process a futex-list entry, check whether it's owned by the* dying task, and do notification if so:
调用者
名称描述
futex_cleanup