From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Michael Ellerman <mpe@ellerman.id.au>
Cc: Paul Mackerras <paulus@ozlabs.org>,
KVM list <kvm@vger.kernel.org>,
kvm-ppc@vger.kernel.org
Subject: Re: [GIT PULL] Please pull my kvm-ppc-next branch again
Date: Tue, 09 May 2017 13:31:44 +0000 [thread overview]
Message-ID: <1494336704.25766.444.camel@kernel.crashing.org> (raw)
In-Reply-To: <7ff7775d-97cc-5d05-223b-2f8c2afbb9d0@redhat.com>
On Tue, 2017-05-09 at 11:24 +0200, Paolo Bonzini wrote:
> 2) I'm not sure about why PPC/KVM conflicts keep on happening. KVM on
> PPC seems to be more tightly integrated with non-KVM code than other
> architectures. _But it's also the other way round_ which seems less
> healthy to me. I'm not sure if that is really necessary, but if not,
> please refactor things so that we don't step on each other's toes
> unnecessarily. Perhaps real mode handlers should be in
> arch/powerpc/kernel/ and only arch/powerpc/kvm/, so that the latter only
> cares about virtualization? Maybe the whole napping and CPU thread
> management should be done outside arch/powerpc/kvm/? Not sure if that
> makes any sense, but to my eyes there are definitely too many KVM parts
> in hardware enablement patches (and BTW it's just crazy that PPC has
> about 4k lines of assembly).
Heh, we've been improving that lately :-)
> Maybe PPC *is* the special snowflake where interaction should be
> primarily with arch maintainers rather than myself. Then let's just
> have topic branches for the occasional API patch (new KVM_CAP_*
> constants would be the gist of it) and otherwise let Michael merge
> KVM/PPC patches.
Sadly it *is* a bit of a special snowflake due to mostly two things,
which are the way the old hash MMU worked (the CPU wasn't designed for
a hypervisor operating with MMU on among other things, so we have this
whole business with doing things in "real mode"), and the way P8 forces
threads to be in the same partition.
We hope to be able to make a much simpler and much more classic
"backend" at some point with the new radix MMU for P9, though we'll
probably continue dragging some of that existing cruft as long as hash
still has to be supported among other things.
> But in any case, to my eyes there _is_ a pattern, and a problem. It
> doesn't matter that the canary is a cherry-pick conflict that Linus
> could solve blinded and with one hand tied behind his back.
There is but it's more or less inherent to the CPU architecture. All I
can say is we are trying to move away from a lot of that crap with the
new MMU, but that will take time.
On thing that will help too is that we have been working hard to get
full hypervisor level backward compatibility for P9 onward. So
hopefully, there will be less overlap between pure enablement and KVM
in the future for that reason too.
Cheers,
Ben.
WARNING: multiple messages have this Message-ID (diff)
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Paolo Bonzini <pbonzini@redhat.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Michael Ellerman <mpe@ellerman.id.au>
Cc: Paul Mackerras <paulus@ozlabs.org>,
KVM list <kvm@vger.kernel.org>,
kvm-ppc@vger.kernel.org
Subject: Re: [GIT PULL] Please pull my kvm-ppc-next branch again
Date: Tue, 09 May 2017 15:31:44 +0200 [thread overview]
Message-ID: <1494336704.25766.444.camel@kernel.crashing.org> (raw)
In-Reply-To: <7ff7775d-97cc-5d05-223b-2f8c2afbb9d0@redhat.com>
On Tue, 2017-05-09 at 11:24 +0200, Paolo Bonzini wrote:
> 2) I'm not sure about why PPC/KVM conflicts keep on happening. KVM on
> PPC seems to be more tightly integrated with non-KVM code than other
> architectures. _But it's also the other way round_ which seems less
> healthy to me. I'm not sure if that is really necessary, but if not,
> please refactor things so that we don't step on each other's toes
> unnecessarily. Perhaps real mode handlers should be in
> arch/powerpc/kernel/ and only arch/powerpc/kvm/, so that the latter only
> cares about virtualization? Maybe the whole napping and CPU thread
> management should be done outside arch/powerpc/kvm/? Not sure if that
> makes any sense, but to my eyes there are definitely too many KVM parts
> in hardware enablement patches (and BTW it's just crazy that PPC has
> about 4k lines of assembly).
Heh, we've been improving that lately :-)
> Maybe PPC *is* the special snowflake where interaction should be
> primarily with arch maintainers rather than myself. Then let's just
> have topic branches for the occasional API patch (new KVM_CAP_*
> constants would be the gist of it) and otherwise let Michael merge
> KVM/PPC patches.
Sadly it *is* a bit of a special snowflake due to mostly two things,
which are the way the old hash MMU worked (the CPU wasn't designed for
a hypervisor operating with MMU on among other things, so we have this
whole business with doing things in "real mode"), and the way P8 forces
threads to be in the same partition.
We hope to be able to make a much simpler and much more classic
"backend" at some point with the new radix MMU for P9, though we'll
probably continue dragging some of that existing cruft as long as hash
still has to be supported among other things.
> But in any case, to my eyes there _is_ a pattern, and a problem. It
> doesn't matter that the canary is a cherry-pick conflict that Linus
> could solve blinded and with one hand tied behind his back.
There is but it's more or less inherent to the CPU architecture. All I
can say is we are trying to move away from a lot of that crap with the
new MMU, but that will take time.
On thing that will help too is that we have been working hard to get
full hypervisor level backward compatibility for P9 onward. So
hopefully, there will be less overlap between pure enablement and KVM
in the future for that reason too.
Cheers,
Ben.
next prev parent reply other threads:[~2017-05-09 13:31 UTC|newest]
Thread overview: 100+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-05 7:45 [GIT PULL] Please pull my kvm-ppc-next branch Paul Mackerras
2015-09-05 7:45 ` Paul Mackerras
2015-09-07 8:29 ` Paolo Bonzini
2015-09-07 8:29 ` Paolo Bonzini
2015-10-26 4:17 ` Paul Mackerras
2015-10-26 4:17 ` Paul Mackerras
2015-11-02 12:53 ` Paolo Bonzini
2015-11-02 12:53 ` Paolo Bonzini
2016-01-15 10:35 ` Paul Mackerras
2016-01-15 10:35 ` Paul Mackerras
2016-01-15 16:49 ` Paolo Bonzini
2016-01-15 16:49 ` Paolo Bonzini
2016-03-03 2:38 ` Paul Mackerras
2016-03-03 2:38 ` Paul Mackerras
2016-03-03 13:46 ` Paolo Bonzini
2016-03-03 13:46 ` Paolo Bonzini
2016-05-13 5:23 ` Paul Mackerras
2016-05-13 5:23 ` Paul Mackerras
2016-05-13 7:44 ` Christian Borntraeger
2016-05-13 7:44 ` Christian Borntraeger
2016-05-13 8:24 ` Paul Mackerras
2016-05-13 8:24 ` Paul Mackerras
2016-07-11 15:46 ` Paul Mackerras
2016-07-11 15:46 ` Paul Mackerras
2016-07-11 16:11 ` Paolo Bonzini
2016-07-11 16:11 ` Paolo Bonzini
2016-09-13 4:58 ` Paul Mackerras
2016-09-13 4:58 ` Paul Mackerras
2016-09-13 13:10 ` Paolo Bonzini
2016-09-13 13:10 ` Paolo Bonzini
2016-09-28 4:46 ` Paul Mackerras
2016-09-28 4:46 ` Paul Mackerras
2016-09-29 14:46 ` Radim Krčmář
2016-09-29 14:46 ` Radim Krčmář
2016-09-29 20:00 ` Thomas Huth
2016-09-29 20:00 ` Thomas Huth
2016-11-28 22:53 ` Paul Mackerras
2016-11-28 22:53 ` Paul Mackerras
2016-11-30 17:25 ` Radim Krčmář
2016-11-30 17:25 ` Radim Krčmář
2016-12-06 9:35 ` Paul Mackerras
2016-12-06 9:35 ` Paul Mackerras
2016-12-06 13:50 ` Radim Krčmář
2016-12-06 13:50 ` Radim Krčmář
2017-02-01 9:24 ` Paul Mackerras
2017-02-01 9:24 ` Paul Mackerras
2017-02-07 17:17 ` Paolo Bonzini
2017-02-07 17:17 ` Paolo Bonzini
2017-04-19 11:01 ` Paul Mackerras
2017-04-19 11:01 ` Paul Mackerras
2017-04-19 12:32 ` Alexey Kardashevskiy
2017-04-19 12:32 ` Alexey Kardashevskiy
2017-04-20 1:28 ` Paul Mackerras
2017-04-20 1:28 ` Paul Mackerras
2017-04-21 7:52 ` Paul Mackerras
2017-04-21 7:52 ` Paul Mackerras
2017-04-21 10:28 ` Paolo Bonzini
2017-04-21 10:28 ` Paolo Bonzini
2017-04-29 0:25 ` [GIT PULL] Please pull my kvm-ppc-next branch again Paul Mackerras
2017-04-29 0:25 ` Paul Mackerras
2017-04-29 12:39 ` Paolo Bonzini
2017-04-29 12:39 ` Paolo Bonzini
2017-05-06 10:02 ` Paul Mackerras
2017-05-06 10:02 ` Paul Mackerras
2017-05-06 15:22 ` Paolo Bonzini
2017-05-06 15:22 ` Paolo Bonzini
2017-05-08 3:31 ` Paul Mackerras
2017-05-08 3:31 ` Paul Mackerras
2017-05-08 7:28 ` Paolo Bonzini
2017-05-08 7:28 ` Paolo Bonzini
2017-05-08 13:39 ` Paolo Bonzini
2017-05-08 13:39 ` Paolo Bonzini
2017-05-09 1:09 ` Paul Mackerras
2017-05-09 1:09 ` Paul Mackerras
2017-05-09 2:03 ` Michael Ellerman
2017-05-09 2:03 ` Michael Ellerman
2017-05-09 2:17 ` Linus Torvalds
2017-05-09 2:17 ` Linus Torvalds
2017-05-09 9:24 ` Paolo Bonzini
2017-05-09 9:24 ` Paolo Bonzini
2017-05-09 13:31 ` Benjamin Herrenschmidt [this message]
2017-05-09 13:31 ` Benjamin Herrenschmidt
2017-05-09 13:53 ` Paolo Bonzini
2017-05-09 13:53 ` Paolo Bonzini
2017-05-11 6:33 ` Michael Ellerman
2017-05-11 6:33 ` Michael Ellerman
2017-05-09 23:31 ` Paul Mackerras
2017-05-09 23:31 ` Paul Mackerras
2017-05-11 6:28 ` Michael Ellerman
2017-05-11 6:28 ` Michael Ellerman
2017-05-11 6:37 ` Michael Ellerman
2017-05-11 6:37 ` Michael Ellerman
2017-07-02 7:11 ` [GIT PULL] Please pull my kvm-ppc-next branch Paul Mackerras
2017-07-02 7:11 ` Paul Mackerras
2017-09-01 6:36 ` Paul Mackerras
2017-09-01 6:36 ` Paul Mackerras
2017-11-02 6:54 ` Paul Mackerras
2017-11-02 6:54 ` Paul Mackerras
2017-11-02 17:16 ` Paolo Bonzini
2017-11-02 17:16 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1494336704.25766.444.camel@kernel.crashing.org \
--to=benh@kernel.crashing.org \
--cc=kvm-ppc@vger.kernel.org \
--cc=kvm@vger.kernel.org \
--cc=mpe@ellerman.id.au \
--cc=paulus@ozlabs.org \
--cc=pbonzini@redhat.com \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.