From: Alexander Graf <agraf@suse.de>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Peter Maydell <peter.maydell@linaro.org>
Cc: Alexey Kardashevskiy <aik@ozlabs.ru>,
Paolo Bonzini <pbonzini@redhat.com>,
Gerd Hoffmann <kraxel@redhat.com>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [RFC] qemu VGA endian swap low level drawing changes
Date: Wed, 18 Jun 2014 01:05:02 +0200 [thread overview]
Message-ID: <53A0C99E.4020101@suse.de> (raw)
In-Reply-To: <1403045714.7661.179.camel@pasglop>
On 18.06.14 00:55, Benjamin Herrenschmidt wrote:
> On Tue, 2014-06-17 at 23:12 +0100, Peter Maydell wrote:
>> On 17 June 2014 22:32, Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
>>> Additionally, I wouldn't mind of we did a quick "trick" equivalent (but
>>> cleaner) to what I did in my patch which is when the pseries guest calls
>>> the hypervisor call to change the interrupt endian mode, we notify VGA
>>> and switch its endian mode, so we work "by default" with kernels not
>>> updated to know about that register. But this is open for debate. It's
>>> somewhat "acceptable" in the context of our hypercall being a
>>> "paravirtualized" interface, so it can be argued that the hypercall
>>> poking at the VGA chip is equivalent to some FW doing so :-)
>> I'm definitely against this. Have your guest change the behaviour
>> of the VGA device by explicitly prodding the VGA device, not by
>> back-door side-effects of something else that it happens to do
>> on one particular guest for one particular architecture, please.
> But that means modifying guests ... obviously you live in a world where
> you don't have to live with existing enterprise distros backward
> compatibility :-)
>
> I understand the reluctance against backdoor side effects in general,
> but as I said, this is a hypervisor call that basically says "change
> system endianness". It does make some amount of sense to have in that
> case the hypervisor (which here is qemu) go adjust the endianness
> setting in some devices as well as the cores.
Semantically the H_SET_MODE(LE) hypercall is on the same level as PSCI.
Some code somewhere (Trustzone in the guest on ARM or QEMU) runs some
code to "do magic".
So for the sake of the discussion imagine this code would live inside of
guest context. It can't for us, as hypercalls always trap into KVM or
QEMU, but semantically the code shouldn't be able to do too much more
than anything coming from the guest should be able to do.
Imagine the code that runs here loops through all PCI devices, looks for
BOCHS VGA adapters and pokes that endian register.
This is essentially the interface that Ben is suggesting here.
Given that, the prerequisite to that interface is to have a guest
exposed register to flip the endianness in the first place. I think it
makes most sense to settle on that register first, then talk about
potential backwards compat hacks that we could do on hypercalls with
that register.
Of course, the side effect that H_SET_MODE(LE) flips the VGA endianness
needs to be documented in sPAPR as well if we want to go down that path.
sPAPR is the hypercall specification we implement with -M pseries.
Alex
next prev parent reply other threads:[~2014-06-17 23:05 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-17 3:07 [Qemu-devel] [RFC] qemu VGA endian swap low level drawing changes Benjamin Herrenschmidt
2014-06-17 4:40 ` Paolo Bonzini
2014-06-17 4:59 ` Benjamin Herrenschmidt
2014-06-17 5:36 ` Paolo Bonzini
2014-06-17 6:06 ` Benjamin Herrenschmidt
2014-06-17 9:18 ` Alexey Kardashevskiy
2014-06-17 9:26 ` Alexander Graf
2014-06-17 10:00 ` Greg Kurz
2014-06-17 10:09 ` Benjamin Herrenschmidt
2014-06-17 10:19 ` Peter Maydell
2014-06-17 10:57 ` Benjamin Herrenschmidt
2014-06-17 11:40 ` Greg Kurz
2014-06-17 11:53 ` Benjamin Herrenschmidt
2014-06-17 12:05 ` Peter Maydell
2014-06-17 10:45 ` Gerd Hoffmann
2014-06-17 11:08 ` Peter Maydell
2014-06-17 11:24 ` Gerd Hoffmann
2014-06-17 11:42 ` Peter Maydell
2014-06-19 12:33 ` Gerd Hoffmann
2014-06-19 13:01 ` Paolo Bonzini
2014-06-17 11:15 ` Benjamin Herrenschmidt
2014-06-17 11:57 ` Gerd Hoffmann
2014-06-17 21:32 ` Benjamin Herrenschmidt
2014-06-17 22:12 ` Peter Maydell
2014-06-17 22:55 ` Benjamin Herrenschmidt
2014-06-17 23:05 ` Alexander Graf [this message]
2014-06-17 23:16 ` Benjamin Herrenschmidt
2014-06-18 11:18 ` Gerd Hoffmann
2014-06-18 13:03 ` Benjamin Herrenschmidt
2014-06-19 9:36 ` Gerd Hoffmann
2014-06-21 5:37 ` Benjamin Herrenschmidt
2014-06-22 2:10 ` Benjamin Herrenschmidt
2014-06-23 1:13 ` Benjamin Herrenschmidt
2014-06-30 11:14 ` Gerd Hoffmann
2014-06-30 12:32 ` Benjamin Herrenschmidt
2014-07-01 8:20 ` Gerd Hoffmann
2014-07-01 8:26 ` Alexander Graf
2014-07-01 8:31 ` Paolo Bonzini
2014-07-01 9:07 ` Gerd Hoffmann
2014-07-01 9:19 ` Paolo Bonzini
2014-07-01 11:15 ` Gerd Hoffmann
2014-07-01 11:23 ` Benjamin Herrenschmidt
2014-07-02 9:19 ` Benjamin Herrenschmidt
2014-07-02 9:21 ` Benjamin Herrenschmidt
2014-07-02 12:12 ` Gerd Hoffmann
2014-07-02 12:16 ` Benjamin Herrenschmidt
2014-07-06 2:19 ` Benjamin Herrenschmidt
2014-07-06 5:49 ` Benjamin Herrenschmidt
2014-07-06 6:46 ` Benjamin Herrenschmidt
2014-07-06 7:05 ` Benjamin Herrenschmidt
2014-07-06 7:22 ` Benjamin Herrenschmidt
2014-07-06 8:15 ` Benjamin Herrenschmidt
2014-07-06 10:13 ` Benjamin Herrenschmidt
2014-07-06 11:08 ` Alexander Graf
2014-07-06 11:13 ` Peter Maydell
2014-07-06 11:23 ` Benjamin Herrenschmidt
2014-07-06 13:09 ` Peter Maydell
2014-07-06 20:56 ` Benjamin Herrenschmidt
2014-07-07 0:08 ` Benjamin Herrenschmidt
2014-07-07 10:13 ` Gerd Hoffmann
2014-07-07 9:38 ` Gerd Hoffmann
2014-07-06 5:53 ` Benjamin Herrenschmidt
2014-07-01 12:06 ` Paolo Bonzini
2014-07-01 8:59 ` Gerd Hoffmann
2014-07-01 9:35 ` Benjamin Herrenschmidt
2014-07-01 9:33 ` Benjamin Herrenschmidt
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=53A0C99E.4020101@suse.de \
--to=agraf@suse.de \
--cc=aik@ozlabs.ru \
--cc=benh@kernel.crashing.org \
--cc=kraxel@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).