Function report |
Source Code:kernel\events\core.c |
Create Date:2022-07-28 13:34:27 |
Last Modify:2022-05-20 07:50:19 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Returns a matching context with refcount and pincount.
Proto:static struct perf_event_context *find_get_context(struct pmu *pmu, struct task_struct *task, struct perf_event *event)
Type:struct perf_event_context
Parameter:
Type | Parameter | Name |
---|---|---|
struct pmu * | pmu | |
struct task_struct * | task | |
struct perf_event * | event |
4269 | struct perf_event_context * ctx, * clone_ctx = NULL |
4271 | void * task_ctx_data = NULL |
4276 | If Not task Then |
4278 | err = perf_allow_cpu( & attr) |
4282 | cpuctx = per_cpu_ptr(pmu_cpu_context, cpu) |
4285 | ++pin_count |
4287 | Return ctx |
4291 | ctxn = task_ctx_nr |
4295 | If attach_state & PERF_ATTACH_TASK_DATA Then |
4296 | task_ctx_data = kzalloc - allocate memory. The memory is set to zero.*@size: how many bytes of memory are required.*@flags: the type of memory to allocate (see kmalloc). |
4297 | If Not task_ctx_data Then |
4303 | retry : |
4304 | ctx = Get the perf_event_context for a task and lock it.* This has to cope with with the fact that until it is locked,* the context could get moved to another task. |
4305 | If ctx Then |
4307 | ++pin_count |
4309 | If task_ctx_data && Not pmu specific data Then |
4310 | pmu specific data = task_ctx_data |
4311 | task_ctx_data = NULL |
4317 | Else |
4318 | ctx = alloc_perf_context(pmu, task) |
4323 | If task_ctx_data Then |
4324 | pmu specific data = task_ctx_data |
4325 | task_ctx_data = NULL |
4328 | err = 0 |
4329 | mutex_lock( & perf_event_mutex) |
4334 | If Per task flags (PF_*), defined further below: & Getting shut down Then err = -ESRCH |
4336 | Else if perf_event_ctxp[ctxn] Then err = -EAGAIN |
4338 | Else |
4340 | ++pin_count |
4354 | kfree(task_ctx_data) |
4355 | Return ctx |
4357 | errout : |
4358 | kfree(task_ctx_data) |
Name | Describe |
---|---|
perf_event_create_kernel_counter | perf_event_create_kernel_counter*@attr: attributes of the counter to create*@cpu: cpu in which the counter is bound*@task: task to profile (NULL for percpu) |
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 |