From: Marc Zyngier <marc.zyngier@arm.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>,
"agraf@suse.de" <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: Mon, 27 Jul 2015 08:52:54 +0100 [thread overview]
Message-ID: <55B5E356.8020007@arm.com> (raw)
In-Reply-To: <1437817799.15305.22.camel@redhat.com>
Hi Gerd,
On 25/07/15 10:49, Gerd Hoffmann wrote:
> 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.
If this new virtio-vga driver still insists on always mapping the memory
as "non-cacheable", then it will face the same fate indeed. Which is a
bit odd, as it really *knows* this is a paravirtualized device, and that
the data will be read back from the CPU side.
The dirty tracking logic plays no part in that, AFAIK.
Thanks,
M.
--
Jazz is not dead. It just smells funny...
prev parent reply other threads:[~2015-07-27 7:53 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
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 [this message]
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=55B5E356.8020007@arm.com \
--to=marc.zyngier@arm.com \
--cc=agraf@suse.de \
--cc=ard.biesheuvel@linaro.org \
--cc=kraxel@redhat.com \
--cc=lersek@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 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.