mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-05 07:30:06 -04:00
3563289208ecef339853692ecbf8690084744b53
With an empty '[annotate]' section in ~/.perfconfig:
# perf record -a --all-kernel -e '{cycles,instructions}:P' sleep 5
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 2.243 MB perf.data (5513 samples) ]
# perf annotate --stdio2 _raw_spin_lock | head -20
Disassembly of section .text:
ffffffff81868790 <_raw_spin_lock>:
_raw_spin_lock():
EXPORT_SYMBOL(_raw_spin_trylock_bh);
#endif
#ifndef CONFIG_INLINE_SPIN_LOCK
void __lockfunc _raw_spin_lock(raw_spinlock_t *lock)
{
→ callq __fentry__
atomic_cmpxchg():
return xadd(&v->counter, -i);
}
static __always_inline int atomic_cmpxchg(atomic_t *v, int old, int new)
{
# perf annotate --stdio2 _raw_spin_lock | head -20
→ callq __fentry__
xor %eax,%eax
mov $0x1,%edx
87.50 100.00 lock cmpxchg %edx,(%rdi)
6.25 0.00 test %eax,%eax
↓ jne 16
6.25 0.00 repz retq
16: mov %eax,%esi
↑ jmpq ffffffff810e96b0 <queued_spin_lock_slowpath>
#
# cat ~/.perfconfig
[annotate]
hide_src_code = false
show_linenr = true
# perf annotate --stdio2 _raw_spin_lock | head -20
3 Disassembly of section .text:
5 ffffffff81868790 <_raw_spin_lock>:
6 _raw_spin_lock():
143 EXPORT_SYMBOL(_raw_spin_trylock_bh);
144 #endif
146 #ifndef CONFIG_INLINE_SPIN_LOCK
147 void __lockfunc _raw_spin_lock(raw_spinlock_t *lock)
148 {
→ callq __fentry__
150 atomic_cmpxchg():
187 return xadd(&v->counter, -i);
188 }
190 static __always_inline int atomic_cmpxchg(atomic_t *v, int old, int new)
191 {
#
# cat ~/.perfconfig
[annotate]
hide_src_code = true
show_total_period = true
# perf annotate --stdio2 _raw_spin_lock | head -20
→ callq __fentry__
xor %eax,%eax
mov $0x1,%edx
1411316 152339 lock cmpxchg %edx,(%rdi)
344694 0 test %eax,%eax
↓ jne 16
80806 0 repz retq
16: mov %eax,%esi
↑ jmpq ffffffff810e96b0 <queued_spin_lock_slowpath>
#
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jin Yao <yao.jin@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: https://lkml.kernel.org/n/tip-nu4rxg5zkdtgs1b2gc40p7v7@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Merge tag 'seccomp-v4.16-rc4' of https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux into fixes-v4.16-rc4
Merge tag 'asoc-fix-v4.16-rc5' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
…
Linux kernel ============ This file was moved to Documentation/admin-guide/README.rst Please notice that there are several guides for kernel developers and users. These guides can be rendered in a number of formats, like HTML and PDF. In order to build the documentation, use ``make htmldocs`` or ``make pdfdocs``. There are various text files in the Documentation/ subdirectory, several of them using the Restructured Text markup notation. See Documentation/00-INDEX for a list of what is contained in each file. Please read the Documentation/process/changes.rst file, as it contains the requirements for building and running the kernel, and information about the problems which may result by upgrading your kernel.
Description
Languages
C
97%
Assembly
1%
Shell
0.6%
Rust
0.5%
Python
0.4%
Other
0.3%