linux/tools/perf
Andi Kleen bec1967204 perf tools: Try to increase the file descriptor limits on EMFILE
perf stat -a needs 10 open file descriptors per logical CPU
perf stat -a -dddd needs 20 open fds for each.

This implies that stat -a doesn't work on any system with the default
ulimit -n 1024 which has more than ~100 CPUs and stat -a -dddd doesn't
work on anything with more than 46 CPUs.

Longer term there needs to be probably some way to lower the file
descriptor requirements. This would need some changes in the kernel/user
interface.

But short term this patch just tries to increase the file descriptor
limit in perf itself, when it runs into a EMFILE.

It first sets it to the hard limit, and then tries to increase the hard
limit.

On Fedora systems the default seems to be soft limit 1024 and hard limit
4*1024. So even non root can support 409 or 186 CPUs respectively. root
can go far higher.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Link: http://lkml.kernel.org/r/1375670486-15480-1-git-send-email-andi@firstfloor.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2013-08-16 17:17:57 -03:00
..
arch perf tools: Fix compile of util/tsc.c 2013-08-07 17:35:24 -03:00
bench perf bench: Fix memcpy benchmark for large sizes 2013-07-22 12:41:56 -03:00
config perf tools: Use default include path notation for libtraceevent headers 2013-07-12 13:45:54 -03:00
Documentation perf trace: Allow specifying which syscalls to trace 2013-08-14 11:44:21 -03:00
python perf python: Remove duplicate TID bit from mask 2013-08-07 17:35:25 -03:00
scripts perf script: Fix broken include in Context.xs 2013-07-10 13:47:00 -03:00
tests perf tests: Fix compile failure on do_sort_something 2013-08-14 11:42:45 -03:00
ui perf ui/gtk: Fix segmentation fault on perf_hpp__for_each_format loop 2013-08-07 17:35:39 -03:00
util perf tools: Try to increase the file descriptor limits on EMFILE 2013-08-16 17:17:57 -03:00
.gitignore perf tools: Ignore compiled python binaries 2012-09-07 12:10:58 -03:00
bash_completion perf tools: Complete tracepoint event names 2012-10-04 12:44:52 -03:00
builtin-annotate.c perf tools: Remove filter parameter of perf_event__preprocess_sample() 2013-08-12 10:31:11 -03:00
builtin-bench.c perf tools: Make numa benchmark optional 2013-01-30 10:36:21 -03:00
builtin-buildid-cache.c perf buildid-cache: Add --update option 2013-02-14 14:59:27 -03:00
builtin-buildid-list.c perf symbols: Generalize filter in __fprintf_buildid methods 2012-12-09 08:46:07 -03:00
builtin-diff.c perf tools: Remove filter parameter of perf_event__preprocess_sample() 2013-08-12 10:31:11 -03:00
builtin-evlist.c perf evlist: Pass the event_group info via perf_attr_details 2013-02-06 18:09:28 -03:00
builtin-help.c perf help: Fix --help for builtins 2012-10-22 12:35:49 -02:00
builtin-inject.c perf tools: Remove filter parameter of thread__find_addr_map() 2013-08-12 10:31:12 -03:00
builtin-kmem.c perf tools: struct thread has a tid not a pid 2013-07-12 13:53:50 -03:00
builtin-kvm.c perf kvm: Remove force option to cmd_record 2013-08-16 17:17:57 -03:00
builtin-list.c perf list: List kernel supplied event aliases 2013-07-12 13:53:53 -03:00
builtin-lock.c perf record: Remove -f/--force option 2013-07-08 17:37:25 -03:00
builtin-mem.c perf tools: Remove filter parameter of perf_event__preprocess_sample() 2013-08-12 10:31:11 -03:00
builtin-probe.c perf tools: Introduce tools/lib/lk library 2013-03-15 13:06:00 -03:00
builtin-record.c perf tools: Remove event types framework completely 2013-07-15 16:28:22 -03:00
builtin-report.c perf tools: Remove filter parameter of perf_event__preprocess_sample() 2013-08-12 10:31:11 -03:00
builtin-sched.c perf sched: Remove sched_process_fork tracepoint 2013-08-12 10:31:07 -03:00
builtin-script.c perf tools: Remove filter parameter of thread__find_addr_map() 2013-08-12 10:31:12 -03:00
builtin-stat.c perf stat: Flush output after each line in interval mode 2013-08-07 17:35:29 -03:00
builtin-timechart.c perf timechart: Remove event types framework only user 2013-07-15 16:14:47 -03:00
builtin-top.c perf tools: Remove filter parameter of perf_event__preprocess_sample() 2013-08-12 10:31:11 -03:00
builtin-trace.c perf trace: Allow specifying which syscalls to trace 2013-08-14 11:44:21 -03:00
builtin.h perf tools: Add new mem command for memory access profiling 2013-04-01 12:21:44 -03:00
command-list.txt perf tools: Add new mem command for memory access profiling 2013-04-01 12:21:44 -03:00
CREDITS perf_counter tools: Add CREDITS file for Git contributors 2009-06-24 19:54:29 +02:00
design.txt perf tools: Update ioctl documentation for PERF_IOC_FLAG_GROUP 2012-05-31 11:38:42 -03:00
Makefile perf tests: Add test for reading object code 2013-08-07 17:35:30 -03:00
MANIFEST perf tools: Introduce tools/lib/lk library 2013-03-15 13:06:00 -03:00
perf-archive.sh perf archive: Make 'f' the last parameter for tar 2012-09-17 13:10:42 -03:00
perf.c perf tools: Convert needless static variable to local 2013-04-01 12:22:48 -03:00
perf.h perf kvm: Option to print events that exceed a duration 2013-08-12 10:31:04 -03:00