Re: [PATCH v7 1/4] spinlock: A new lockref structure for locklessupdate of refcount

From: Sedat Dilek
Date: Fri Aug 30 2013 - 13:11:31 EST


On Fri, Aug 30, 2013 at 6:52 PM, Linus Torvalds
<torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Fri, Aug 30, 2013 at 9:37 AM, Sedat Dilek <sedat.dilek@xxxxxxxxx> 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 -
--
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/