Skip to content

Commit a831100

Browse files
committed
perf core: Generalize max_stack sysctl handler
So that it can be used for other stack related knobs, such as the upcoming one to tweak the max number of of contexts per stack sample. In all those cases we can only change the value if there are no perf sessions collecting stacks, so they need to grab that mutex, etc. Cc: David Ahern <[email protected]> Cc: Frederic Weisbecker <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Peter Zijlstra <[email protected]> Link: http://lkml.kernel.org/n/[email protected] Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
1 parent 0a77582 commit a831100

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

kernel/events/callchain.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,8 @@ get_perf_callchain(struct pt_regs *regs, u32 init_nr, bool kernel, bool user,
228228
int perf_event_max_stack_handler(struct ctl_table *table, int write,
229229
void __user *buffer, size_t *lenp, loff_t *ppos)
230230
{
231-
int new_value = sysctl_perf_event_max_stack, ret;
231+
int *value = table->data;
232+
int new_value = *value, ret;
232233
struct ctl_table new_table = *table;
233234

234235
new_table.data = &new_value;
@@ -240,7 +241,7 @@ int perf_event_max_stack_handler(struct ctl_table *table, int write,
240241
if (atomic_read(&nr_callchain_events))
241242
ret = -EBUSY;
242243
else
243-
sysctl_perf_event_max_stack = new_value;
244+
*value = new_value;
244245

245246
mutex_unlock(&callchain_mutex);
246247

kernel/sysctl.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1149,7 +1149,7 @@ static struct ctl_table kern_table[] = {
11491149
},
11501150
{
11511151
.procname = "perf_event_max_stack",
1152-
.data = NULL, /* filled in by handler */
1152+
.data = &sysctl_perf_event_max_stack,
11531153
.maxlen = sizeof(sysctl_perf_event_max_stack),
11541154
.mode = 0644,
11551155
.proc_handler = perf_event_max_stack_handler,

0 commit comments

Comments
 (0)