[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Linux v3.12 + pv ticketlocks.



Hey,

Linux v3.12 (which is now in merge window phase) has the code for
making the spinlock use ticketlocks for everything. The relevant
git commit is commit 816434ec4a674fcdb3c2221a6dffdc8f34020550
Merge: f357a82 36bd621
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date:   Wed Sep 4 11:55:10 2013 -0700

    Merge branch 'x86-spinlocks-for-linus' of 
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
    
    Pull x86 spinlock changes from Ingo Molnar:
     "The biggest change here are paravirtualized ticket spinlocks (PV
      spinlocks), which bring a nice speedup on various benchmarks.


Majority of that work was done by Jeremy Fitzhardinge and I would like
to thank him for doing this work. It had taken a year (or more) to actually
get it upstreamed. Now that it is, it means that the PV ticketlock
implementation is used for:
 - Xen PV guests (it used to have a PV bytelock locking mechanism)
 - KVM Linux guests.

Baremetal will still use ticketlocks.

What is missing is that the Xen PVHVM guests don't use it. They
still end up using ticketlock, but not the PV part. The reason is b/c
yours didn't get all of the bugs ironed out until today :-)

I have a branch in

 git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git 
devel/pvticketlock.v7

which fixes the bugs so that under Xen PVHVM the PV ticketlocks are also
utilized. There is a cruft of DEBUG patches that one can ignore if
CONFIG_XEN_DEBUG_SPIN is not set. Otherwise they cause the slowpath to be
executed most of the time to stress test the kicker/waiter logic.

I am planning on doing some more testing next week and making sure it all works 
nicely.

We could merge it in v3.12 - as most of the patches are bug-fixes
(and two reverts) - see below. However, I am going to be -EBUSY for most
of the v3.12 cycle so won't be able to help much if mysterious bugs
show up.

P.S.
The DEBUG code adds new hypercalls. The Xen parts are in

 git://xenbits.xen.org/people/konradwilk/xen.git devel/pvticketlock.v7

The xenanalyze patch: 
http://darnok.org/xen/xenanalyze.devel-pvticketlock.v7.patch

P.S.S.
The relavant patches that make PVHVM work on top of the above mentioned
git commit are:
218b57 xen/smp: Update pv_lock_ops before alternative code kicks in (PVHVM).
eb2a6eb Revert "xen: disable PV spinlocks on HVM"
15d09db Revert "xen/spinlock: Disable IRQ spinlock (PV) allocation on PVHVM"
ee4c3a1 xen/smp: Update pv_lock_ops before alternative code kicks in.
1253858 xen/spinlock: Fix locking path engaging too soon.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.