From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sedat Dilek Subject: Re: [PATCH v7 1/4] spinlock: A new lockref structure for lockless update of refcount Date: Fri, 30 Aug 2013 19:11:26 +0200 Message-ID: References: <1375758759-29629-1-git-send-email-Waiman.Long@hp.com> <1375758759-29629-2-git-send-email-Waiman.Long@hp.com> <1377751465.4028.20.camel@pasglop> <20130829070012.GC27322@gmail.com> <52200DAE.2020303@hp.com> Reply-To: sedat.dilek@gmail.com Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Cc: Waiman Long , Ingo Molnar , Benjamin Herrenschmidt , Alexander Viro , Jeff Layton , Miklos Szeredi , Ingo Molnar , Thomas Gleixner , linux-fsdevel , Linux Kernel Mailing List , Peter Zijlstra , Steven Rostedt , Andi Kleen , "Chandramouleeswaran, Aswin" , "Norton, Scott J" To: Linus Torvalds Return-path: Received: from mail-we0-f176.google.com ([74.125.82.176]:47345 "EHLO mail-we0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752831Ab3H3RL1 (ORCPT ); Fri, 30 Aug 2013 13:11:27 -0400 In-Reply-To: Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Fri, Aug 30, 2013 at 6:52 PM, Linus Torvalds wrote: > On Fri, Aug 30, 2013 at 9:37 AM, Sedat Dilek wrote: >> >> Where is this a.out file from or how to generate it? > > Oh, that's just the silly threaded test-binary. I don't know what you > called it. > > As to your config options, yesh, you have some expensive stuff. > DEBUG_OBJECTS and DEBUG_MUTEXES in particular tend to cause lots of > horrible performance issues. I didn't check if there might be other > things.. > There is no -f option for record but for report, so I swapped them: $ sudo ~/src/linux-kernel/linux/tools/perf/perf record -e cycles:pp ./scripts/t_lockref_from-linus Total loops: 2240273 [ perf record: Woken up 25 times to write data ] [ perf record: Captured and wrote 6.080 MB perf.data (~265641 samples) ] $ sudo ~/src/linux-kernel/linux/tools/perf/perf report -f Samples: 159K of event 'cycles:pp', Event count (approx.): 76535356682 84,10% t_lockref_from- [kernel.kallsyms] [k] check_poison_obj 5,22% t_lockref_from- [kernel.kallsyms] [k] memset 1,15% t_lockref_from- [kernel.kallsyms] [k] irq_return 0,45% t_lockref_from- [kernel.kallsyms] [k] kmem_cache_alloc 0,44% t_lockref_from- [kernel.kallsyms] [k] kmem_cache_free 0,36% t_lockref_from- [kernel.kallsyms] [k] __ticket_spin_lock 0,35% t_lockref_from- [kernel.kallsyms] [k] cache_free_debugcheck 0,35% t_lockref_from- [kernel.kallsyms] [k] __acct_update_integrals 0,34% t_lockref_from- [kernel.kallsyms] [k] user_exit 0,33% t_lockref_from- [kernel.kallsyms] [k] __d_lookup_rcu 0,26% t_lockref_from- libc-2.15.so [.] __xstat64 0,25% t_lockref_from- [kernel.kallsyms] [k] poison_obj 0,24% t_lockref_from- [kernel.kallsyms] [k] local_clock 0,19% t_lockref_from- [kernel.kallsyms] [k] lockref_get_or_lock 0,19% t_lockref_from- [kernel.kallsyms] [k] link_path_walk 0,19% t_lockref_from- [kernel.kallsyms] [k] rcu_eqs_enter_common.isra.43 0,19% t_lockref_from- [kernel.kallsyms] [k] rcu_eqs_exit_common.isra.41 0,17% t_lockref_from- [kernel.kallsyms] [k] native_read_tsc 0,17% t_lockref_from- [kernel.kallsyms] [k] user_enter 0,16% t_lockref_from- [kernel.kallsyms] [k] sched_clock_cpu 0,16% t_lockref_from- [kernel.kallsyms] [k] path_lookupat 0,14% t_lockref_from- [kernel.kallsyms] [k] vfs_getattr 0,14% t_lockref_from- [kernel.kallsyms] [k] lockref_put_or_lock 0,14% t_lockref_from- [kernel.kallsyms] [k] path_init 0,13% t_lockref_from- [kernel.kallsyms] [k] tracesys 0,13% t_lockref_from- [kernel.kallsyms] [k] native_sched_clock 0,13% t_lockref_from- [kernel.kallsyms] [k] strncpy_from_user 0,12% t_lockref_from- [kernel.kallsyms] [k] cp_new_stat 0,12% t_lockref_from- [kernel.kallsyms] [k] cache_alloc_debugcheck_after.isra.61 0,12% t_lockref_from- [kernel.kallsyms] [k] account_system_time 0,12% t_lockref_from- [kernel.kallsyms] [k] copy_user_generic_unrolled 0,12% t_lockref_from- [kernel.kallsyms] [k] syscall_trace_enter 0,12% t_lockref_from- [kernel.kallsyms] [k] jiffies_to_timeval 0,11% t_lockref_from- [kernel.kallsyms] [k] get_vtime_delta 0,11% t_lockref_from- t_lockref_from-linus [.] __stat 0,10% t_lockref_from- [kernel.kallsyms] [k] check_irq_off 0,10% t_lockref_from- [kernel.kallsyms] [k] common_perm 0,10% t_lockref_from- [kernel.kallsyms] [k] lookup_fast 0,09% t_lockref_from- [kernel.kallsyms] [k] getname_flags 0,09% t_lockref_from- [kernel.kallsyms] [k] syscall_trace_leave 0,08% t_lockref_from- t_lockref_from-linus [.] start_routine 0,08% t_lockref_from- [kernel.kallsyms] [k] vfs_fstatat 0,08% t_lockref_from- [kernel.kallsyms] [k] system_call_after_swapgs 0,08% t_lockref_from- [kernel.kallsyms] [k] user_path_at_empty 0,08% t_lockref_from- [kernel.kallsyms] [k] account_user_time 0,07% t_lockref_from- [kernel.kallsyms] [k] generic_fillattr 0,07% t_lockref_from- [kernel.kallsyms] [k] complete_walk 0,06% t_lockref_from- [kernel.kallsyms] [k] security_inode_getattr 0,06% t_lockref_from- [kernel.kallsyms] [k] _raw_spin_lock 0,06% t_lockref_from- [kernel.kallsyms] [k] rcu_eqs_exit 0,06% t_lockref_from- [kernel.kallsyms] [k] vtime_account_user 0,06% t_lockref_from- [kernel.kallsyms] [k] dput 0,06% t_lockref_from- [kernel.kallsyms] [k] rcu_eqs_enter 0,06% t_lockref_from- [kernel.kallsyms] [k] __virt_addr_valid - Sedat -