Below is a snippet from "perf" report taken for gnome-panel high cpu issue (cpu spins on below mutex for gnome-panel process) ------------------------------------------------------------------------------------------------------------------------------ g_type_check_instance_is_a /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4002.0 1.69 │ xor %eax,%eax ▒ │ test %r8,%r8 ▒ │ ↓ je 9b ▒ 1.69 │ 3c: testb $0x4,0x16(%r8) ▒ 13.48 │ ↓ je b0 ▒ 2.25 │ test %rsi,%rsi ▒ 0.56 │ ↓ je b0 ◆ 0.56 │ movzbl 0x14(%rsi),%eax ▒ 6.18 │ movzbl 0x14(%r8),%edx ▒ 1.12 │ cmp %dl,%al ▒ 1.12 │ ↓ ja 65 ▒ 2.25 │ sub %eax,%edx ▒ │ mov 0x48(%rsi),%rdi ▒ 2.25 │ movslq %edx,%rdx ▒ │ cmp %rdi,0x48(%r8,%rdx,8) ▒ 18.54 │ ↓ je a2 ▒ │ 65: cltq ▒ │ cmpq $0x8,0x48(%rsi,%rax,8) ▒ │ ↓ je b8 ▒ │ 6f: xor %eax,%eax ▒ │ ← retq ▒ │ nop ▒ 1.12 │ 78: and $0xfffffffffffffffc,%r8 ▒ 1.12 │ cmp $0x3fc,%rsi ▒ │ ↑ ja 31 ▒ │ 85: lea g_param_spec_types+0x78,%rax ▒ 2.25 │ shr $0x2,%rsi ▒ │ mov (%rax,%rsi,8),%rsi ▒ 3.93 │ xor %eax,%eax ▒ │ test %r8,%r8 ▒ 0.56 │ ↑ jne 3c ▒ │ 9b: repz retq ▒ │ 9d: test %r9,%r9 ▒ │ ↑ je 6f ▒ 2.25 │ a2: mov $0x1,%eax Also, pthread_mutex_lock /lib/x86_64-linux-gnu/libpthread-2.19.so │ lea default_barrierattr+0x38,%rdi │ mov $0x74,%edx │ → callq __assert_fail@plt │11f: mov 0x4(%rdi),%eax 0.50 │ cmp $0xffffffff,%eax 0.25 │ ↓ je 1d5 │ add $0x1,%eax 0.25 │ mov %eax,0x4(%rdi) │ xor %eax,%eax │ ↑ jmpq 8b 0.50 │138: cmp $0x3,%eax 0.50 │ ↓ jne 1f9 0.50 │ cmpl $0x0,__is_smp 0.99 │ ↑ je 58 │ mov %edx,%eax 0.25 │ mov $0x1,%edx │ lock cmpxchg %edx,(%rdi) 25.50 │ test %eax,%eax │ ↓ je 1ab │ movswl 0x14(%rdi),%eax │ mov $0x1,%esi │ lea 0xa(%rax,%rax,1),%ecx │ mov $0x64,%eax │ cmp $0x64,%ecx │ cmovg %eax,%ecx │ xor %dl,%dl │ xor %edi,%edi 0.74 │179: add $0x1,%edx │ lea -0x1(%rdx),%eax │ cmp %eax,%ecx │ ↓ jle 1df