[PATCH 0/9] qspinlock stuff -v15

Waiman Long
Wed, 18 Mar 2015 20:36:35 -0000

On 03/16/2015 09:16 AM, Peter Zijlstra wrote:
> Hi Waiman,
>
> As promised; here is the paravirt stuff I did during the trip to BOS last
week.
>
> All the !paravirt patches are more or less the same as before (the only
real
> change is the copyright lines in the first patch).
>
> The paravirt stuff is 'simple' and KVM only -- the Xen code was a
little more
> convoluted and I've no real way to test that but it should be stright
fwd to
> make work.
>
> I ran this using the virtme tool (thanks Andy) on my laptop with a 4x
> overcommit on vcpus (16 vcpus as compared to the 4 my laptop actually has)
and
> it both booted and survived a hackbench run (perf bench sched messaging -g
20
> -l 5000).
>
> So while the paravirt code isn't the most optimal code ever conceived
it does work.
>
> Also, the paravirt patching includes replacing the call with "movb $0,
%arg1"
> for the native case, which should greatly reduce the cost of having
> CONFIG_PARAVIRT_SPINLOCKS enabled on actual hardware.
>
> I feel that if someone were to do a Xen patch we can go ahead and merge
this
> stuff (finally!).
>
> These patches do not implement the paravirt spinlock debug stats currently
> implemented (separately) by KVM and Xen, but that should not be too hard to
do
> on top and in the 'generic' code -- no reason to duplicate all
that.
>
> Of course; once this lands people can look at improving the paravirt
nonsense.
>

Thanks for sending this out. I have no problem with the !paravirt patch.
I do have some comments on the paravirt one which I will reply individually.

Cheers,
Longman