perf top: fix segfault
authorMike Galbraith <efault@gmx.de>
Sun, 24 May 2009 06:35:49 +0000 (08:35 +0200)
committerIngo Molnar <mingo@elte.hu>
Sun, 24 May 2009 06:57:08 +0000 (08:57 +0200)
c6eb13 increased stack usage such that perf-top now croaks on startup.

Take event_array and mmap_array off the stack to prevent segfault on boxen
with smallish ulimit -s setting.

Signed-off-by: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: John Kacur <jkacur@redhat.com>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Documentation/perf_counter/builtin-top.c

index a3216a6018c49cce6074665aad4f77ac1520dbac..74021ac90f51d595de2f865377b266ccc2e97417 100644 (file)
@@ -1035,10 +1035,11 @@ static void mmap_read(struct mmap_data *md)
        md->prev = old;
 }
 
+static struct pollfd event_array[MAX_NR_CPUS * MAX_COUNTERS];
+static struct mmap_data mmap_array[MAX_NR_CPUS][MAX_COUNTERS];
+
 int cmd_top(int argc, char **argv, const char *prefix)
 {
-       struct pollfd event_array[MAX_NR_CPUS * MAX_COUNTERS];
-       struct mmap_data mmap_array[MAX_NR_CPUS][MAX_COUNTERS];
        struct perf_counter_hw_event hw_event;
        pthread_t thread;
        int i, counter, group_fd, nr_poll = 0;