Re: [BUG] perf failed on multi-cpus system with multi-eventsspecified

From: Han Pingtian
Date: Wed Mar 02 2011 - 01:28:18 EST


On Wed, Mar 02, 2011 at 05:35:30AM +0100, Eric Dumazet wrote:
> Le mercredi 02 mars 2011 à 11:58 +0800, Han Pingtian a écrit :
> > Hi,
> >
> > On a Nehalem-EX system, which has 24 CPUs, perf commands with
> > multi-events specified fail:
> >
> > [root@intel-s3e36-01 perf]# ./perf record -e
> > syscalls:sys_enter_sched_get_priority_min -e kmem:mm_kernel_pagefault
> > -e workqueue:workqueue_execution -e writeback:writeback_pages_written
> > -e kmem:mm_kernel_pagefault -e writeback:writeback_bdi_unregister -e
> > syscalls:sys_exit_capset -e syscalls:sys_enter_sched_get_priority_min
> > -e writeback:writeback_exec -e syscalls:sys_enter_vmsplice -e
> > syscalls:sys_exit_mprotect -e block:block_rq_complete -e
> > syscalls:sys_enter_readlinkat -e signal:signal_overflow_fail -e
> > syscalls:sys_exit_sendfile64 -e block:block_bio_backmerge -e
> > syscalls:sys_exit_unlink -e syscalls:sys_exit_keyctl -e
> > jbd2:jbd2_submit_inode_data -e syscalls:sys_enter_tgkill -e
> > syscalls:sys_exit_lremovexattr -e syscalls:sys_exit_munmap -e
> > syscalls:sys_enter_mmap -e syscalls:sys_exit_sched_getparam -e
> > syscalls:sys_exit_getpgid -e syscalls:sys_exit_clock_getres -e
> > block:block_split -e ext4:ext4_mballoc_discard -e task-clock -e
> > syscalls:sys_enter_sendfile64 -e syscalls:sys_enter_ptrace -e
> > syscalls:sys_enter_nanosleep -e syscalls:sys_exit_setdomainname -e
> > writeback:writeback_nowork -e syscalls:sys_exit_mbind -e
> > ext4:ext4_da_write_begin -e syscalls:sys_enter_recvfrom -e
> > syscalls:sys_enter_write -e syscalls:sys_exit_getresgid -e
> > syscalls:sys_exit_fsync -e syscalls:sys_enter_rt_sigprocmask -e
> > syscalls:sys_enter_getdents -e syscalls:sys_exit_semtimedop -f ls
> >
> > Error: sys_perf_event_open() syscall returned with -1 (Too many open
> > files). /bin/dmesg may provide additional information.
> >
> > Fatal: No CONFIG_PERF_EVENTS=y kernel support configured?
> >
> > trace-cmd: Too many open files
> > No memory to alloc tracepoints list
> > [root@intel-s3e36-01 perf]# ./perf --version
> > perf version 2.6.38.rc6.166.g493f33
> > [root@intel-s3e36-01 perf]#
> >
> > On another latop which has only two CPUs, there is no this problem.
>
> perf needs nr_cpus * nr_events file descriptors
>
> Try before :
>
> ulimit -n 1000000
It works. Thanks!
>
>

--
Han Pingtian
Quality Engineer
hpt @ #kernel-qe
Red Hat, Inc
Freedom ... courage ... Commitment ... ACCOUNTABILITY
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/