Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\events\core.c Create Date:2022-07-28 13:41:23
Last Modify:2022-05-20 07:50:19 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:Free a context as created by inheritance by perf_event_init_task() below,* used by fork() in case of fail.* Even though the task has never lived, the context and events have been* exposed through the child_list, so we must take care tearing it all down.

Proto:void perf_event_free_task(struct task_struct *task)

Type:void

Parameter:

TypeParameterName
struct task_struct *task
11972  ctx = perf_event_ctxp[ctxn]
11973  If Not ctx Then Continue
11976  mutex_lock( & Protect the list of events. Locking either mutex or lock* is sufficient to ensure the list doesn't change; to change* the list you need to lock both the mutex and the spinlock.)
11977  raw_spin_lock_irq( & Protect the states of the events in the list,* nr_active, and the list:)
11984  RCU_INIT_POINTER() - initialize an RCU protected pointer*@p: The pointer to be initialized.*@v: The value to initialized the pointer to.* Initialize an RCU-protected pointer in special cases where readers(perf_event_ctxp[ctxn], NULL)
11985  WRITE_ONCE(task, TASK_TOMBSTONE)
11986  put_task_struct(task)
11987  raw_spin_unlock_irq( & Protect the states of the events in the list,* nr_active, and the list:)
11989  list_for_each_entry_safe - iterate over list of given type safe against removal of list entry*@pos: the type * to use as a loop cursor.*@n: another type * to use as temporary storage*@head: the head for your list.(event, tmp, & event_list, event_entry)
11990  perf_free_event(event, ctx)
11992  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.
12008  wait_var_event( & refcount, _read - get a refcount's value*@r: the refcount* Return: the refcount's value == 1)
12009  put_ctx(ctx)
Caller
NameDescribe
perf_event_init_taskInitialize the perf_event context in task_struct