perf_event_contextRegular
4.4: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct list_head pinned_groups;
struct list_head flexible_groups;
struct list_head event_list;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
atomic_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
struct delayed_work orphans_remove;
bool orphans_remove_sched;
};
4.8: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct list_head pinned_groups;
struct list_head flexible_groups;
struct list_head event_list;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
atomic_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
4.10: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct list_head pinned_groups;
struct list_head flexible_groups;
struct list_head event_list;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
atomic_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
4.13: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct list_head pinned_groups;
struct list_head flexible_groups;
struct list_head event_list;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
atomic_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
4.15: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct list_head pinned_groups;
struct list_head flexible_groups;
struct list_head event_list;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
atomic_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
4.18: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
struct list_head pinned_active;
struct list_head flexible_active;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
atomic_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
5.0: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
struct list_head pinned_active;
struct list_head flexible_active;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
atomic_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
5.3: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
struct list_head pinned_active;
struct list_head flexible_active;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
int rotate_necessary;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
5.4: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
struct list_head pinned_active;
struct list_head flexible_active;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
int rotate_necessary;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
5.8: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
struct list_head pinned_active;
struct list_head flexible_active;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
int rotate_necessary;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
5.11: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
struct list_head pinned_active;
struct list_head flexible_active;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
int rotate_necessary;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
5.13: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
struct list_head pinned_active;
struct list_head flexible_active;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
int rotate_necessary;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
5.15: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
struct list_head pinned_active;
struct list_head flexible_active;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
int rotate_necessary;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
u64 timeoffset;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
5.19: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
struct list_head pinned_active;
struct list_head flexible_active;
int nr_events;
int nr_active;
int nr_user;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
int rotate_necessary;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
u64 timeoffset;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
6.2: ✅struct perf_event_context {
raw_spinlock_t lock;
struct mutex mutex;
struct list_head pmu_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
int nr_events;
int nr_user;
int is_active;
int nr_task_data;
int nr_stat;
int nr_freq;
int rotate_disable;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
u64 timeoffset;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
struct callback_head callback_head;
local_t nr_pending;
};
6.5: ✅struct perf_event_context {
raw_spinlock_t lock;
struct mutex mutex;
struct list_head pmu_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
int nr_events;
int nr_user;
int is_active;
int nr_task_data;
int nr_stat;
int nr_freq;
int rotate_disable;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
u64 timeoffset;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
struct callback_head callback_head;
local_t nr_pending;
};
6.8: ✅struct perf_event_context {
raw_spinlock_t lock;
struct mutex mutex;
struct list_head pmu_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
int nr_events;
int nr_user;
int is_active;
int nr_task_data;
int nr_stat;
int nr_freq;
int rotate_disable;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
u64 timeoffset;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
struct callback_head callback_head;
local_t nr_pending;
};
arm64: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
struct list_head pinned_active;
struct list_head flexible_active;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
int rotate_necessary;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
armhf: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
struct list_head pinned_active;
struct list_head flexible_active;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
int rotate_necessary;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
ppc64el: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
struct list_head pinned_active;
struct list_head flexible_active;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
int rotate_necessary;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
riscv64: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
struct list_head pinned_active;
struct list_head flexible_active;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
int rotate_necessary;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
aws: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
struct list_head pinned_active;
struct list_head flexible_active;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
int rotate_necessary;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
azure: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
struct list_head pinned_active;
struct list_head flexible_active;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
int rotate_necessary;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
gcp: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
struct list_head pinned_active;
struct list_head flexible_active;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
int rotate_necessary;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
lowlatency: ✅struct perf_event_context {
struct pmu *pmu;
raw_spinlock_t lock;
struct mutex mutex;
struct list_head active_ctx_list;
struct perf_event_groups pinned_groups;
struct perf_event_groups flexible_groups;
struct list_head event_list;
struct list_head pinned_active;
struct list_head flexible_active;
int nr_events;
int nr_active;
int is_active;
int nr_stat;
int nr_freq;
int rotate_disable;
int rotate_necessary;
refcount_t refcount;
struct task_struct *task;
u64 time;
u64 timestamp;
struct perf_event_context *parent_ctx;
u64 parent_gen;
u64 generation;
int pin_count;
int nr_cgroups;
void *task_ctx_data;
struct callback_head callback_head;
};
Regular
4.4 and 4.8 ⚠️struct delayed_work orphans_remove
bool orphans_remove_sched
4.8 and 4.10 ✅
4.10 and 4.13 ✅
4.13 and 4.15 ✅
4.15 and 4.18 ⚠️struct list_head pinned_active
struct list_head flexible_active
struct list_head pinned_groups ➡️ struct perf_event_groups pinned_groups
struct list_head flexible_groups ➡️ struct perf_event_groups flexible_groups
4.18 and 5.0 ✅
5.0 and 5.3 ⚠️int rotate_necessary
atomic_t refcount ➡️ refcount_t refcount
5.3 and 5.4 ✅
5.4 and 5.8 ✅
5.8 and 5.11 ✅
5.11 and 5.13 ✅
5.13 and 5.15 ⚠️u64 timeoffset
5.15 and 5.19 ⚠️int nr_user
5.19 and 6.2 ⚠️struct list_head pmu_ctx_list
int nr_task_data
local_t nr_pending
struct pmu *pmu
struct list_head active_ctx_list
struct list_head pinned_active
struct list_head flexible_active
int nr_active
int rotate_necessary
void *task_ctx_data
6.2 and 6.5 ✅
6.5 and 6.8 ✅
amd64 and arm64 ✅
amd64 and armhf ✅
amd64 and ppc64el ✅
amd64 and riscv64 ✅
generic and aws ✅
generic and azure ✅
generic and gcp ✅
generic and lowlatency ✅