[PATCH 00/11] qspinlock with paravirt support

Konrad Rzeszutek Wilk
2014-06-16T20:52:21Z

On Sun, Jun 15, 2014 at 02:46:57PM +0200, Peter Zijlstra
wrote:
> Since Waiman seems incapable of doing simple things; here's my take on
the
> paravirt crap.
>
> The first few patches are taken from Waiman's latest series, but the
virt
> support is completely new. Its primary aim is to not mess up the native
code.

OK. I finally cleared some time to look over this and are reading the code
in details to make sure I have it clear in mind. I will most likely ask
some questions that are naive - hopefully they will lead to the code being
self-explanatory for anybody else taking a stab at understanding them when
bugs appear.
>
> I've not stress tested it, but the virt and paravirt (kvm) cases boot
on simple
> smp guests. I've not done Xen, but the patch should be simple and
similar.

Looking forward to seeing it. Glancing over the KVM one and comparing it
to the original version that Waiman posted it should be fairly simple. Perhaps
even some of the code could be shared?

>
> I ripped out all the unfair nonsense as its not at all required for
paravirt
> and optimizations that make paravirt better at the cost of code clarity
and/or
> native performance are just not worth it.
>
> Also; if we were to ever add some of that unfair nonsense you do so _after_
you
> got the simple things working.
>
> The thing I'm least sure about is the head tracking, I chose to do
something
> different from what Waiman did, because his is O(nr_cpus) and had the
> assumption that guests have small nr_cpus. AFAIK this is not at all true.
The
> biggest problem I have with what I did is that it contains wait loops
itself.
>
>
>