On 26 July 2015 at 11:17, Peter Maydell <peter.mayd...@linaro.org> wrote:
> On 26 July 2015 at 10:31, Laszlo Ersek <ler...@redhat.com> wrote:
>> On 07/25/15 11:49, Gerd Hoffmann wrote:
>>> 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.
>>
>> Yes. :(
>
> The question for cache-coherency of an emulated framebuffer with
> KVM is simply "does the guest set up this region of physical address
> space as Normal Cacheable memory, or does it set it up as Device
> or some other non-cacheable memory attribute type?". Whether the
> framebuffer is part of a PCI BAR or shared with "guest RAM" doesn't
> matter for this. (Of course it may matter for the guest if the
> guest makes assumptions about what kind of mapping it needs to
> use for any PCI BAR.)

...and note also that it doesn't matter for this whether the
guest expects the graphics device to automatically notice
writes via dirty-tracking or whether it explicitly says "hey
I wrote to the framebuffer" somehow -- if the guest and QEMU
disagree about whether the memory is cacheable then you are
potentially going to run into corruption problems.

-- PMM

Reply via email to