[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Performance overhead of paravirt_ops on nativeidentified
>>> Jeremy Fitzhardinge <jeremy@xxxxxxxx> 14.05.09 02:16 >>> >One possibility is to inline _spin_lock, etc, when building an >optimised kernel (ie, when there's no spinlock/preempt >instrumentation/debugging enabled). That will remove the outer >call/return pair, returning the instruction stream to a single >call/return, which will presumably execute the same as the non-pvops >case. The downsides arel 1) it will replicate the >preempt_disable/enable code at eack lock/unlock callsite; this code is >fairly small, but not nothing; and 2) the spinlock definitions are >already a very heavily tangled mass of #ifdefs and other preprocessor >magic, and making any changes will be non-trivial. > >The other obvious answer is to disable pv-spinlocks. Making them a >separate config option is fairly easy, and it would be trivial to >enable them only when Xen is enabled (as the only non-default user). >But it doesn't really address the common case of a distro build which >is going to have Xen support enabled, and leaves the open question of >whether the native performance cost of pv-spinlocks is worth the >performance improvement on a loaded Xen system (10% saving of overall >system CPU when guests block rather than spin). Still it is a >reasonable short-term workaround. Wouldn't a third solution be to use ticket spinlocks everywhere, i.e. eliminate the current indirection, and replace it by an indirection for just the contention case? As I view it, the problem for Xen aren't really the ticket locks by themselves, but rather the extra spinning involved, which is of concern only if a lock is contended. We're using ticket locks quite happily in our kernels, with directed instead of global wakeup from the unlock path. The only open issue we currently have is that while for native keeping interrupts disabled while spinning may be acceptable (though I'm not sure how -rt folks are viewing this), in a pv environment one should really re-enable interrupts here due to the potentially much higher latency. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |