Thread (6 messages) 6 messages, 2 authors, 2017-02-08

Re: [PATCH 1/2] x86/paravirt: Don't make vcpu_is_preempted() a callee-save function

From: Peter Zijlstra <peterz@infradead.org>
Date: 2017-02-08 19:09:49
Also in: kvm, linux-arch, lkml

On Wed, Feb 08, 2017 at 01:00:24PM -0500, Waiman Long wrote:
It was found when running fio sequential write test with a XFS ramdisk
on a 2-socket x86-64 system, the %CPU times as reported by perf were
as follows:

 71.27%  0.28%  fio  [k] down_write
 70.99%  0.01%  fio  [k] call_rwsem_down_write_failed
 69.43%  1.18%  fio  [k] rwsem_down_write_failed
 65.51% 54.57%  fio  [k] osq_lock
  9.72%  7.99%  fio  [k] __raw_callee_save___kvm_vcpu_is_preempted
  4.16%  4.16%  fio  [k] __kvm_vcpu_is_preempted

So making vcpu_is_preempted() a callee-save function has a pretty high
cost associated with it. As vcpu_is_preempted() is called within the
spinlock, mutex and rwsem slowpaths, there isn't much to gain by making
it callee-save. So it is now changed to a normal function call instead.
Numbers for bare metal too please.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help