Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1220385 > unrolled thread

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

Started byLinus Torvalds <torvalds@linux-foundation.org>
First post2015-09-07 22:50 +0200
Last post2015-09-08 19:50 +0200
Articles 4 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [4.2, Regression] Queued spinlocks cause major XFS performance regression Linus Torvalds <torvalds@linux-foundation.org> - 2015-09-07 22:50 +0200
    Re: [4.2, Regression] Queued spinlocks cause major XFS performance  regression Davidlohr Bueso <dave@stgolabs.net> - 2015-09-08 08:40 +0200
    Re: [4.2, Regression] Queued spinlocks cause major XFS performance  regression Peter Zijlstra <peterz@infradead.org> - 2015-09-08 12:10 +0200
      Re: [4.2, Regression] Queued spinlocks cause major XFS performance regression Linus Torvalds <torvalds@linux-foundation.org> - 2015-09-08 19:50 +0200

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

FromLinus Torvalds <torvalds@linux-foundation.org>
Date2015-09-07 22:50 +0200
SubjectRe: [4.2, Regression] Queued spinlocks cause major XFS performance regression
Message-ID<q6bwt-863-15@gated-at.bofh.it>
On Sun, Sep 6, 2015 at 11:57 PM, Peter Zijlstra <peterz@infradead.org> 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.

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.

So naming is misleading, I think, and the config option situation is
not great. If you act differently under virtualization than you do on
raw hardware, what would you call that? I'd call it "paravirt".

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

[toc] | [next] | [standalone]


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

FromDavidlohr Bueso <dave@stgolabs.net>
Date2015-09-08 08:40 +0200
SubjectRe: [4.2, Regression] Queued spinlocks cause major XFS performance regression
Message-ID<q6kJs-4IZ-15@gated-at.bofh.it>
In reply to#1220385
On Mon, 07 Sep 2015, Linus Torvalds wrote:

>On Sun, Sep 6, 2015 at 11:57 PM, Peter Zijlstra <peterz@infradead.org> 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.
>
>I really think it should at the very least be inside CONFIG_PARAVIRT.

Yeah, I think we all agree here.

>Because it *is* about helping the hypervisor, so really is about
>paravirtualization.

Yes, this is how I interpret it as well.

CONFIG_PARAVIRT seems like a suitable place as while it is known to induce
in overhead for baremetal and distros tend to enable it by default - mainly
for mem pvops (ie: in page fault paths), and having this function doesn't
add any complexity or add make things much different than they already are.

While it is true that CONFIG_HYPERVISOR_GUEST is a pre-req for anything pv,
technically I think it's not as good a fit as CONFIG_PARAVIRT because the
former is really about describing the hypervisor, and that's not what we're
doing here.


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

[toc] | [prev] | [next] | [standalone]


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

FromPeter Zijlstra <peterz@infradead.org>
Date2015-09-08 12:10 +0200
SubjectRe: [4.2, Regression] Queued spinlocks cause major XFS performance regression
Message-ID<q6o0H-15W-71@gated-at.bofh.it>
In reply to#1220385
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@infradead.org> 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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1221023

FromLinus Torvalds <torvalds@linux-foundation.org>
Date2015-09-08 19:50 +0200
Message-ID<q6vbQ-2PL-25@gated-at.bofh.it>
In reply to#1220678
On Tue, Sep 8, 2015 at 3:05 AM, Peter Zijlstra <peterz@infradead.org> wrote:
>
> 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.

Like an architected bit in cpuid that the host sets if it wants the
guest to change its behavior?

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

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web