From: Gerd Hoffmann <kraxel@redhat.com>
To: Laszlo Ersek <lersek@redhat.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>,
Marc Zyngier <marc.zyngier@arm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
"kvmarm@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu>
Subject: Re: issues with emulated PCI MMIO backed by host memory under KVM
Date: Wed, 29 Jun 2016 09:12:42 +0200 [thread overview]
Message-ID: <1467184362.15123.49.camel@redhat.com> (raw)
In-Reply-To: <40f24dbe-06bd-cb73-ae8c-af20930cb360@redhat.com>
On Di, 2016-06-28 at 15:32 +0200, Laszlo Ersek wrote:
> (adding Gerd)
>
> On 06/28/16 15:14, Ard Biesheuvel wrote:
>
> > In any case, reconciling software that requires a framebuffer with a
> > GPU emulation that does not expose one by design is going to be
> > problematic even without this issue. How is this supposed to work on
> > x86?
>
> AFAIK:
>
> "virtio-gpu-pci" is the device model without the framebuffer. It is good
> for secondary displays (i.e. those that you don't boot with, only use
> after the guest kernel starts up).
>
> "virtio-vga" is the same, but it also has the legacy VGA framebuffer,
> hence it can be used for accommodating boot loaders. (Except it won't
> work for aarch64 KVM guests, because of $SUBJECT.)
Exactly. virtio-vga is basically virtio-gpu-pci + stdvga combined.
Power-on default is vga mode. It switches into virtio mode when the
guest configures a output using virtio commands. It switches back to
vga mode on reset.
You can get a simple framebuffer by using the stdvga part of the device.
QemuVideoDxe does exactly that. The linux kernel switches from vga mode
(efifb) to virtio mode when the virtio-gpu kms driver loads.
Of course virtio-vga in vga mode has exactly the same cache coherency
issues as stdvga on arm. So, once the linux kernel with the virtio-gpu
is up'n'running everything is fine, but how to handle early bootloader
display isn't solved yet.
cheers,
Gerd
next prev parent reply other threads:[~2016-06-29 7:07 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-24 14:04 issues with emulated PCI MMIO backed by host memory under KVM Ard Biesheuvel
2016-06-24 14:57 ` Andrew Jones
2016-06-27 8:17 ` Marc Zyngier
2016-06-24 18:16 ` Ard Biesheuvel
2016-06-25 7:15 ` Alexander Graf
2016-06-25 7:19 ` Alexander Graf
2016-06-27 8:11 ` Marc Zyngier
2016-06-27 9:16 ` Christoffer Dall
2016-06-27 9:47 ` Ard Biesheuvel
2016-06-27 10:34 ` Christoffer Dall
2016-06-27 12:30 ` Ard Biesheuvel
2016-06-27 13:35 ` Christoffer Dall
2016-06-27 13:57 ` Ard Biesheuvel
2016-06-27 14:29 ` Alexander Graf
2016-06-28 11:02 ` Laszlo Ersek
2016-06-28 10:04 ` Christoffer Dall
2016-06-28 11:06 ` Laszlo Ersek
2016-06-28 12:20 ` Christoffer Dall
2016-06-28 13:10 ` Catalin Marinas
2016-06-28 13:19 ` Ard Biesheuvel
2016-06-28 13:25 ` Catalin Marinas
2016-06-28 14:02 ` Andrew Jones
2016-06-27 14:24 ` Alexander Graf
2016-06-28 10:55 ` Laszlo Ersek
2016-06-28 13:14 ` Ard Biesheuvel
2016-06-28 13:32 ` Laszlo Ersek
2016-06-29 7:12 ` Gerd Hoffmann [this message]
2016-06-28 15:23 ` Alexander Graf
2016-06-27 13:15 ` Peter Maydell
2016-06-27 13:49 ` Mark Rutland
2016-06-27 14:10 ` Peter Maydell
2016-06-28 10:05 ` Christoffer Dall
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=1467184362.15123.49.camel@redhat.com \
--to=kraxel@redhat.com \
--cc=ard.biesheuvel@linaro.org \
--cc=catalin.marinas@arm.com \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=lersek@redhat.com \
--cc=marc.zyngier@arm.com \
/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