From: Christoffer Dall <christoffer.dall@linaro.org>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Victor Kamensky <victor.kamensky@linaro.org>,
Peter Maydell <peter.maydell@linaro.org>,
Thomas Falcon <tlfalcon@linux.vnet.ibm.com>,
kvm-devel <kvm@vger.kernel.org>,
QEMU Developers <qemu-devel@nongnu.org>,
"qemu-ppc@nongnu.org" <qemu-ppc@nongnu.org>,
"kvmarm@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu>
Subject: Re: [Qemu-ppc] KVM and variable-endianness guest CPUs
Date: Mon, 27 Jan 2014 16:40:15 -0800 [thread overview]
Message-ID: <20140128004015.GA9687@cbox> (raw)
In-Reply-To: <1390869161.3872.42.camel@pasglop>
On Tue, Jan 28, 2014 at 11:32:41AM +1100, Benjamin Herrenschmidt wrote:
> On Thu, 2014-01-23 at 20:11 -0800, Victor Kamensky wrote:
> > > I would take 50 byteswaps with a clear ABI any day over an obscure
> > > standard that can avoid a single hardware-on-register instruction.
> > This
> > > is about designing a clean software interface, not about building an
> > > optimized integrated stack.
> > >
> > > Unfortunately, this is going nowhere, so I think we need to stop
> > this
> > > thread. As you can see I have sent a patch as a clarification to
> > the
> > > ABI, if it's merged we can move on with more important tasks.
> >
> > OK, that is fine. I still believe is not the best choice,
> > but I agree that we need to move on. I will respin my
> > V7 KVM BE patches according to this new semantics, I will
> > integrate comments that you (thanks!) and others gave me
> > over mailing list and post my series again when it is ready.
>
> Right, the whole "host endian" is a horrible choice from every way you
> look at it, but I'm afraid it's unfixable since it's already ABI :-(
>
Why is it a horrible choice?
I don't think it's actually ABI at this point, it's undefined.
The only thing fixed is PPC BE host and ARM LE host, and in both cases
we currently perform a byteswap in KVM if the guest is a different
endianness.
Honestly I don't care which way it's defined, as long as it's defined
somehow, and I have not yet seen anyone formulate how the ABI
specification should be worded, so people clearly understand what's
going on.
If you take a look at the v2 patch "KVM: Specify byte order for
KVM_EXIT_MMIO", that's where it ended up.
If you can formulate something with your experience in endianness that
makes this clear, it would be extremely helpful.
-Christoffer
WARNING: multiple messages have this Message-ID (diff)
From: Christoffer Dall <christoffer.dall@linaro.org>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Peter Maydell <peter.maydell@linaro.org>,
Thomas Falcon <tlfalcon@linux.vnet.ibm.com>,
kvm-devel <kvm@vger.kernel.org>,
Victor Kamensky <victor.kamensky@linaro.org>,
QEMU Developers <qemu-devel@nongnu.org>,
"qemu-ppc@nongnu.org" <qemu-ppc@nongnu.org>,
"kvmarm@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu>
Subject: Re: [Qemu-devel] [Qemu-ppc] KVM and variable-endianness guest CPUs
Date: Mon, 27 Jan 2014 16:40:15 -0800 [thread overview]
Message-ID: <20140128004015.GA9687@cbox> (raw)
In-Reply-To: <1390869161.3872.42.camel@pasglop>
On Tue, Jan 28, 2014 at 11:32:41AM +1100, Benjamin Herrenschmidt wrote:
> On Thu, 2014-01-23 at 20:11 -0800, Victor Kamensky wrote:
> > > I would take 50 byteswaps with a clear ABI any day over an obscure
> > > standard that can avoid a single hardware-on-register instruction.
> > This
> > > is about designing a clean software interface, not about building an
> > > optimized integrated stack.
> > >
> > > Unfortunately, this is going nowhere, so I think we need to stop
> > this
> > > thread. As you can see I have sent a patch as a clarification to
> > the
> > > ABI, if it's merged we can move on with more important tasks.
> >
> > OK, that is fine. I still believe is not the best choice,
> > but I agree that we need to move on. I will respin my
> > V7 KVM BE patches according to this new semantics, I will
> > integrate comments that you (thanks!) and others gave me
> > over mailing list and post my series again when it is ready.
>
> Right, the whole "host endian" is a horrible choice from every way you
> look at it, but I'm afraid it's unfixable since it's already ABI :-(
>
Why is it a horrible choice?
I don't think it's actually ABI at this point, it's undefined.
The only thing fixed is PPC BE host and ARM LE host, and in both cases
we currently perform a byteswap in KVM if the guest is a different
endianness.
Honestly I don't care which way it's defined, as long as it's defined
somehow, and I have not yet seen anyone formulate how the ABI
specification should be worded, so people clearly understand what's
going on.
If you take a look at the v2 patch "KVM: Specify byte order for
KVM_EXIT_MMIO", that's where it ended up.
If you can formulate something with your experience in endianness that
makes this clear, it would be extremely helpful.
-Christoffer
next prev parent reply other threads:[~2014-01-28 0:40 UTC|newest]
Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-17 17:53 KVM and variable-endianness guest CPUs Peter Maydell
2014-01-17 17:53 ` [Qemu-devel] " Peter Maydell
2014-01-17 18:52 ` Peter Maydell
2014-01-17 18:52 ` [Qemu-devel] " Peter Maydell
2014-01-18 4:24 ` Christoffer Dall
2014-01-18 4:24 ` [Qemu-devel] " Christoffer Dall
2014-01-18 7:32 ` Alexander Graf
2014-01-18 7:32 ` [Qemu-devel] " Alexander Graf
2014-01-18 10:15 ` Peter Maydell
2014-01-18 10:15 ` [Qemu-devel] " Peter Maydell
2014-01-20 14:20 ` Alexander Graf
2014-01-20 14:20 ` [Qemu-devel] " Alexander Graf
2014-01-20 14:31 ` Peter Maydell
2014-01-20 14:31 ` [Qemu-devel] " Peter Maydell
2014-01-20 14:22 ` Alexander Graf
2014-01-20 14:22 ` [Qemu-devel] " Alexander Graf
2014-01-20 19:19 ` Christoffer Dall
2014-01-20 19:19 ` [Qemu-devel] " Christoffer Dall
2014-01-22 5:39 ` Victor Kamensky
2014-01-22 5:39 ` [Qemu-devel] " Victor Kamensky
2014-01-22 6:31 ` Anup Patel
2014-01-22 6:31 ` [Qemu-devel] " Anup Patel
2014-01-22 6:41 ` [Qemu-ppc] " Alexander Graf
2014-01-22 6:41 ` [Qemu-devel] " Alexander Graf
2014-01-22 7:26 ` Victor Kamensky
2014-01-22 7:26 ` [Qemu-devel] " Victor Kamensky
2014-01-22 10:52 ` Alexander Graf
2014-01-22 10:52 ` [Qemu-devel] " Alexander Graf
2014-01-23 4:25 ` Victor Kamensky
2014-01-23 4:25 ` [Qemu-devel] " Victor Kamensky
2014-01-23 10:32 ` Alexander Graf
2014-01-23 10:32 ` [Qemu-devel] " Alexander Graf
2014-01-23 10:56 ` Greg Kurz
2014-01-23 10:56 ` [Qemu-devel] " Greg Kurz
2014-01-22 8:57 ` Anup Patel
2014-01-22 8:57 ` [Qemu-devel] " Anup Patel
2014-01-23 23:28 ` Christoffer Dall
2014-01-23 23:28 ` [Qemu-devel] " Christoffer Dall
2014-01-22 10:22 ` Peter Maydell
2014-01-22 10:22 ` [Qemu-devel] " Peter Maydell
2014-01-22 17:19 ` Victor Kamensky
2014-01-22 17:19 ` [Qemu-devel] " Victor Kamensky
2014-01-22 17:29 ` Peter Maydell
2014-01-22 17:29 ` [Qemu-devel] " Peter Maydell
2014-01-22 19:29 ` Victor Kamensky
2014-01-22 19:29 ` [Qemu-devel] " Victor Kamensky
2014-01-22 20:02 ` Peter Maydell
2014-01-22 20:02 ` [Qemu-devel] " Peter Maydell
2014-01-22 22:47 ` Victor Kamensky
2014-01-22 22:47 ` [Qemu-devel] " Victor Kamensky
2014-01-22 23:18 ` Peter Maydell
2014-01-22 23:18 ` [Qemu-devel] " Peter Maydell
2014-01-23 0:22 ` Victor Kamensky
2014-01-23 0:22 ` [Qemu-devel] " Victor Kamensky
2014-01-23 10:23 ` Peter Maydell
2014-01-23 10:23 ` [Qemu-devel] " Peter Maydell
2014-01-23 15:06 ` Victor Kamensky
2014-01-23 15:06 ` [Qemu-devel] " Victor Kamensky
2014-01-23 15:33 ` Peter Maydell
2014-01-23 15:33 ` [Qemu-devel] " Peter Maydell
2014-01-23 16:25 ` Victor Kamensky
2014-01-23 16:25 ` [Qemu-devel] " Victor Kamensky
2014-01-23 20:45 ` Christoffer Dall
2014-01-23 20:45 ` [Qemu-devel] " Christoffer Dall
2014-01-24 0:50 ` Victor Kamensky
2014-01-24 0:50 ` [Qemu-devel] " Victor Kamensky
2014-01-24 2:14 ` Christoffer Dall
2014-01-24 2:14 ` [Qemu-devel] " Christoffer Dall
2014-01-24 4:11 ` Victor Kamensky
2014-01-24 4:11 ` [Qemu-devel] " Victor Kamensky
2014-01-28 0:32 ` [Qemu-ppc] " Benjamin Herrenschmidt
2014-01-28 0:32 ` [Qemu-devel] " Benjamin Herrenschmidt
2014-01-28 0:40 ` Christoffer Dall [this message]
2014-01-28 0:40 ` Christoffer Dall
2014-01-28 0:15 ` Benjamin Herrenschmidt
2014-01-28 0:15 ` [Qemu-devel] " Benjamin Herrenschmidt
2014-01-24 0:09 ` Victor Kamensky
2014-01-24 0:09 ` [Qemu-devel] " Victor Kamensky
2014-01-28 0:07 ` [Qemu-ppc] " Benjamin Herrenschmidt
2014-01-28 0:07 ` [Qemu-devel] " Benjamin Herrenschmidt
2014-01-28 0:07 ` Benjamin Herrenschmidt
2014-01-28 0:07 ` [Qemu-devel] " Benjamin Herrenschmidt
2014-01-27 23:34 ` Benjamin Herrenschmidt
2014-01-27 23:34 ` [Qemu-devel] " Benjamin Herrenschmidt
2014-01-27 23:49 ` Peter Maydell
2014-01-27 23:49 ` [Qemu-devel] " Peter Maydell
2014-01-28 0:36 ` Benjamin Herrenschmidt
2014-01-28 0:36 ` [Qemu-devel] " Benjamin Herrenschmidt
2014-01-28 0:44 ` Christoffer Dall
2014-01-28 0:44 ` [Qemu-devel] " Christoffer Dall
2014-01-28 4:47 ` Benjamin Herrenschmidt
2014-01-28 4:47 ` [Qemu-devel] " Benjamin Herrenschmidt
2014-01-28 16:31 ` Christoffer Dall
2014-01-28 16:31 ` [Qemu-devel] " Christoffer Dall
2014-01-27 23:31 ` Benjamin Herrenschmidt
2014-01-27 23:31 ` [Qemu-devel] " Benjamin Herrenschmidt
2014-01-27 23:27 ` Benjamin Herrenschmidt
2014-01-27 23:27 ` [Qemu-devel] " Benjamin Herrenschmidt
2014-01-28 9:16 ` Avi Kivity
2014-01-28 9:16 ` [Qemu-devel] " Avi Kivity
2014-01-28 9:04 ` Avi Kivity
2014-01-28 9:04 ` [Qemu-devel] " Avi Kivity
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=20140128004015.GA9687@cbox \
--to=christoffer.dall@linaro.org \
--cc=benh@kernel.crashing.org \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=tlfalcon@linux.vnet.ibm.com \
--cc=victor.kamensky@linaro.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.