函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\events\core.c Create Date:2022-07-27 15:01:44
Last Modify:2022-05-20 07:50:19 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:perf_event_exit_event

函数原型:static void perf_event_exit_event(struct perf_event *child_event, struct perf_event_context *child_ctx, struct task_struct *child)

返回类型:void

参数:

类型参数名称
struct perf_event *child_event
struct perf_event_context *child_ctx
struct task_struct *child
11787  parent_event等于parent
11801  关闭本地中断,获取所要保护的运行队列(runqueue)的自旋锁(spinlock),为查找可运行进程做准备。( & Protect the states of the events in the list,* nr_active, and the list:)
11802  WARN_ON_ONCE(is_active)
11804  如果parent_eventperf_group_detach(child_event)
11806  Remove an event from the lists for its context.* Must be called with ctx->mutex and ctx->lock held.
11807  perf_event_set_state(child_event, PERF_EVENT_STATE_EXIT)
11808  raw_spin_unlock_irq( & Protect the states of the events in the list,* nr_active, and the list:)
11813  如果非parent_event
11814  perf_event_wakeup(child_event)
11815  返回
11821  sync_child_event(child_event, child)
11826  WARN_ON_ONCE(parent_ctx)
11827  mutex_lock( & child_mutex)
11828  删除链表项并重新初始化
11829  mutex_unlock - release the mutex*@lock: the mutex to be released* Unlock a mutex that has been locked by this task previously.* This function must not be used in interrupt context. Unlocking* of a not locked mutex is not allowed.
11834  perf_event_wakeup(parent_event)
11835  Used to free events which have a known refcount of 1, such as in error paths* where the event isn't exposed yet and inherited events.
11836  put_event(parent_event)
调用者
名称描述
perf_event_exit_task_context