Re: [4.2, Regression] Queued spinlocks cause major XFS performance regression

From: Peter Zijlstra
Date: Tue Sep 08 2015 - 06:06:06 EST


On Mon, Sep 07, 2015 at 01:45:18PM -0700, Linus Torvalds wrote:
> On Sun, Sep 6, 2015 at 11:57 PM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> >
> > Just to continue the argument for arguments sake, the function is named
> > 'virt' (not paravirt) and tests the HYPERVISOR CPUID bit. How is that
> > not appropriately named?
>
> Well, I think right now one issue is that you can't avoid it, even
> when you want pure "raw hardware" spinlocks.

The host could choose not to set the HYPERVISOR CPUID bit, but yes point
taken, and I've got a patch to make it conditional on a CONFIG thingy.

> I really think it should at the very least be inside CONFIG_PARAVIRT.
> Because it *is* about helping the hypervisor, so really is about
> paravirtualization.

Ah, so I think the confusion is in what we consider paravirt to mean. My
definition of paravirt is that its a form of virtualization where the
guest and host communicate over a software channel.

In this case; the guest does not talk to the host, there is no
hypercall, no host support required. Therefore this is not paravirt.

Wikipedia: https://en.wikipedia.org/wiki/Paravirtualization

Seems to agree with such a definition.

In any case, no strong feelings either way; the current patch that I've
got uses CONFIG_HYPERVISOR_GUEST, but I'm happy to change that to
CONFIG_PARAVIRT.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/