From: Gerd Hoffmann <kraxel@redhat.com>
To: Marc Zyngier <marc.zyngier@arm.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>,
Alexander Graf <agraf@suse.de>,
qemu-devel <qemu-devel@nongnu.org>,
Paolo Bonzini <pbonzini@redhat.com>,
Laszlo Ersek <lersek@redhat.com>
Subject: Re: [Qemu-devel] selecting VIRTIO_INPUT and VIRTIO_VGA
Date: Sat, 25 Jul 2015 11:49:59 +0200 [thread overview]
Message-ID: <1437817799.15305.22.camel@redhat.com> (raw)
In-Reply-To: <20150721135122.374f21a9@arm.com>
Hi,
> > I agree. Also, as far as I understood Marc, his hope was that the fix to
> > halfway working VGA emulation would be virtio-gpu.
Note we have both virtio-vga and virtio-gpu-pci. virtio-vga has vga
compatibility built-in, otherwise the two are identical. virtio-gpu-pci
is enabled along with all other virtio drivers, so arm + aarch64 have
that already.
> 2) Use the fact that there is actually hardly any legacy for ARM VMs,
> and embrace paravirtualized devices entirely. We do it for disks,
> network interfaces. Why not display? Why not input?
We have both now (qemu 2.4+, linux 4.1+ for input, linux 4.2+ for gpu).
Works just fine on arm (tcg tested). aarch64 not yet (with vanilla
upstream linux kernel) due to lack of generic pci host support.
> Using VGA makes sense on x86 because this is a standard on that
> platform. Every system has one. You can't expect the same thing on ARM
> (evil persons would even say that you can't expect anything at all). So
> let's take this opportunity to use the best tool for the job. Virtio
> fits that bill pretty well apparently.
Big question is (a) whenever we need a firmware framebuffer and (b) how
to implement that best.
virtio-vga/virtio-gpu-pci in paravirt (native) mode requires the guest
explicitly request screen updates. There is no dirty page tracking, and
guest writes to memory do *not* magically appear on the screen. I don't
think implementing a EFI driver for that is going to fly.
virtio-vga in vga-compat mode uses a framebuffer with the usual dirty
tracking logic in pci bar 0 (simliar to stdvga). Which is exactly the
thing causing the cache coherency issues on aarch64 if I understand
things correctly. Programming (modesetting) works without legacy vga io
ports, you can use the mmio regs in pci bar 1 instead (applies to both
virtio-vga and stdvga btw), and QemuVideoDxe actually uses the mmio bar.
cheers,
Gerd
next prev parent reply other threads:[~2015-07-25 9:50 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-11 17:55 [Qemu-devel] selecting VIRTIO_INPUT and VIRTIO_VGA Paolo Bonzini
2015-07-13 7:32 ` Gerd Hoffmann
2015-07-13 10:15 ` Paolo Bonzini
2015-07-13 11:45 ` Gerd Hoffmann
2015-07-13 11:49 ` Paolo Bonzini
2015-07-20 18:52 ` Laszlo Ersek
2015-07-20 19:06 ` Laszlo Ersek
2015-07-21 12:08 ` Alexander Graf
2015-07-21 12:48 ` Laszlo Ersek
2015-07-21 12:51 ` Marc Zyngier
2015-07-25 9:49 ` Gerd Hoffmann [this message]
2015-07-26 9:31 ` Laszlo Ersek
2015-07-26 10:17 ` Peter Maydell
2015-07-26 10:40 ` Peter Maydell
2015-07-26 11:22 ` Laszlo Ersek
2015-07-27 7:52 ` Marc Zyngier
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=1437817799.15305.22.camel@redhat.com \
--to=kraxel@redhat.com \
--cc=agraf@suse.de \
--cc=ard.biesheuvel@linaro.org \
--cc=lersek@redhat.com \
--cc=marc.zyngier@arm.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 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.