Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 11 files:

Smatch caller information:

arch/x86/events/core.c x86_pmu_cancel_txn() -> perf_pmu_enable()

Type Parameter Key Value
PARAM_VALUE 0 pmu 2364084218461712384
PARAM_VALUE 0 pmu->events_lock s32min-s32max
PARAM_VALUE 0 pmu->nr_addr_filters 0-s32max
PARAM_VALUE 0 pmu->scope 0-s32max
DATA_SOURCE 0 pmu $0
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 irq

arch/x86/events/core.c x86_pmu_commit_txn() -> perf_pmu_enable()

Type Parameter Key Value
PARAM_VALUE 0 pmu 2364084218461712384
PARAM_VALUE 0 pmu->events_lock s32min-s32max
PARAM_VALUE 0 pmu->nr_addr_filters 0-s32max
PARAM_VALUE 0 pmu->scope 0-s32max
DATA_SOURCE 0 pmu $0
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &ctx->lock

kernel/events/core.c __perf_event_disable() -> perf_pmu_enable()

Type Parameter Key Value
PARAM_VALUE 0 pmu 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &cpuctx->ctx.lock
HALF_LOCKED2 &cpuctx->ctx.lock
HALF_LOCKED2 &ctx->lock
HALF_LOCKED2 irq
TYPE_LOCK (struct perf_event_context)->lock

kernel/events/core.c __perf_event_period() -> perf_pmu_enable()

Type Parameter Key Value
PARAM_VALUE 0 pmu 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &cpuctx->ctx.lock
HALF_LOCKED2 &cpuctx->ctx.lock
HALF_LOCKED2 &ctx->lock
HALF_LOCKED2 irq
TYPE_LOCK (struct perf_event_context)->lock

kernel/events/core.c __perf_pmu_sched_task() -> perf_pmu_enable()

Type Parameter Key Value
PARAM_VALUE 0 pmu 4096-ptr_max
PARAM_VALUE 0 pmu->sched_task 1-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &cpuctx->ctx.lock
HALF_LOCKED2 irq
TYPE_LOCK (struct perf_event_context)->lock

kernel/events/core.c __pmu_ctx_sched_out() -> perf_pmu_enable()

Type Parameter Key Value
PARAM_VALUE 0 pmu 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &cpuctx->ctx.lock
HALF_LOCKED2 irq

kernel/events/core.c ctx_resched() -> perf_pmu_enable()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &cpuctx->ctx.lock
HALF_LOCKED2 &task_ctx->lock
HALF_LOCKED2 &tsk->signal->exec_update_lock
HALF_LOCKED2 flags
TYPE_LOCK (struct perf_event_context)->lock

kernel/events/core.c ctx_resched() -> perf_pmu_enable()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &cpuctx->ctx.lock
HALF_LOCKED2 &task_ctx->lock
HALF_LOCKED2 &tsk->signal->exec_update_lock
HALF_LOCKED2 flags
TYPE_LOCK (struct perf_event_context)->lock

kernel/events/core.c event_sched_in() -> perf_pmu_enable()

Type Parameter Key Value
PARAM_VALUE 0 pmu 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 irq

kernel/events/core.c event_sched_out() -> perf_pmu_enable()

Type Parameter Key Value
PARAM_VALUE 0 pmu 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

kernel/events/core.c perf_adjust_freq_unthr_context() -> perf_pmu_enable()

Type Parameter Key Value
PARAM_VALUE 0 pmu 4096-ptr_max
BIT_INFO 0 pmu->capabilities 0x0,0x7ffffffe
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &ctx->lock
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct perf_event_context)->lock

kernel/events/core.c perf_ctx_enable() -> perf_pmu_enable()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &cpuctx->ctx.lock
HALF_LOCKED2 &ctx->lock
HALF_LOCKED2 &ctx->lock
HALF_LOCKED2 &next_ctx->lock
HALF_LOCKED2 &vcpu->mutex
HALF_LOCKED2 irq
HALF_LOCKED2 rcu_read

kernel/events/core.c perf_pmu_cancel_txn() -> perf_pmu_enable()

Type Parameter Key Value
PARAM_VALUE 0 pmu 4096-ptr_max
PARAM_VALUE 0 pmu->capabilities s32min-(-1),2048-s32max
DATA_SOURCE 0 pmu $0
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 irq

kernel/events/core.c perf_pmu_commit_txn() -> perf_pmu_enable()

Type Parameter Key Value
PARAM_VALUE 0 pmu 4096-ptr_max
DATA_SOURCE 0 pmu $0
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &ctx->lock

kernel/events/core.c perf_rotate_context() -> perf_pmu_enable()

Type Parameter Key Value
PARAM_VALUE 0 pmu 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &cpuctx->ctx.lock
HALF_LOCKED2 irq
TYPE_LOCK (struct perf_event_context)->lock