Function report | 
Source Code:kernel\events\core.c | 
Create Date:2022-07-28 13:41:40 | 
| Last Modify:2022-05-20 07:50:19 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:Initialize the perf_event context in task_struct
Proto:static int perf_event_init_context(struct task_struct *child, int ctxn)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct task_struct * | child | |
| int | ctxn | 
| 12264 | parent = current process | 
| 12265 | inherited_all = 1 | 
| 12267 | ret = 0 | 
| 12269 | If Value is more likely to compile time(!perf_event_ctxp[ctxn]) Then Return 0 | 
| 12276 | parent_ctx = Get the context for a task and increment its pin_count so it* can't get swapped to another task. This also increments its* reference count so that the context can't get freed. | 
| 12277 | If Not parent_ctx Then Return 0 | 
| 12291 | 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.) | 
| 12300 | If ret Then Go to out_unlock | 
| 12309 | raw_spin_lock_irqsave( & Protect the states of the events in the list,* nr_active, and the list:, flags) | 
| 12310 | rotate_disable = 1 | 
| 12311 | raw_spin_unlock_irqrestore( & Protect the states of the events in the list,* nr_active, and the list:, flags) | 
| 12316 | If ret Then Go to out_unlock | 
| 12320 | raw_spin_lock_irqsave( & Protect the states of the events in the list,* nr_active, and the list:, flags) | 
| 12321 | rotate_disable = 0 | 
| 12323 | child_ctx = perf_event_ctxp[ctxn] | 
| 12325 | If child_ctx && inherited_all Then | 
| 12333 | cloned_ctx = These fields let us detect when two contexts have both* been cloned (inherited) from a common ancestor. | 
| 12334 | If cloned_ctx Then | 
| 12335 | These fields let us detect when two contexts have both* been cloned (inherited) from a common ancestor. = cloned_ctx | 
| 12336 | parent_gen = parent_gen | 
| 12337 | Else | 
| 12344 | raw_spin_unlock_irqrestore( & Protect the states of the events in the list,* nr_active, and the list:, flags) | 
| 12345 | out_unlock : | 
| 12348 | perf_unpin_context(parent_ctx) | 
| 12349 | put_ctx(parent_ctx) | 
| 12351 | Return ret | 
| Name | Describe | 
|---|---|
| perf_event_init_task | Initialize the perf_event context in task_struct | 
| Source code conversion tool public plug-in interface  | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion  |