Hi,
-----Original Message----- From: Chia-I Wu olvaffe@gmail.com Sent: 20 February 2020 19:41 To: Guillaume Gardet Guillaume.Gardet@arm.com Cc: dri-devel@lists.freedesktop.org; Gerd Hoffmann kraxel@redhat.com; Daniel Vetter daniel.vetter@ffwll.ch; Catalin Marinas Catalin.Marinas@arm.com; nd nd@arm.com Subject: Re: [Bug] virtio-gpu broken with qemu/kvm on arm64 on kernel 5.5+
On Thu, Feb 20, 2020 at 4:44 AM Guillaume Gardet Guillaume.Gardet@arm.com wrote:
Hi,
With (guest) kernel 5.5+ with qemu/kvm on arm64, I get lots of display
corruptions leading to this kind of screen:
Looking at the screenshot, it seems cacheline-related?
It could be.
There was a change of memory type
https://lists.freedesktop.org/archives/dri-devel/2019-August/233456.html
While the guest memory type is ignored on Intel, it is honored on ARM. This attempt to fix it
https://lists.freedesktop.org/archives/dri-devel/2019-December/248271.html
does not seem to land.
I applied this patch on top of 5.5.4, but it does not fix the problem. Maybe more similar changes are required?
Regards, Guillaume
I git bisected it to commit c66df701e783bc666593e6e665f13670760883ee
drm/virtio: switch from ttm to gem shmem helpers
virtio-gpu basically needs a sg_table for the bo, to tell the host where the backing pages for the object are. So the gem shmem helpers are a perfect fit. Some drm_gem_object_funcs need thin wrappers to update the host state, but otherwise the helpers handle everything just fine.
Once the fencing was sorted the switch was surprisingly easy and for the most part just removing the ttm code.
v4: fix drm_gem_object_funcs name.
Signed-off-by: Gerd Hoffmann kraxel@redhat.com Acked-by: Daniel Vetter daniel.vetter@ffwll.ch Reviewed-by: Chia-I Wu olvaffe@gmail.com Link: http://patchwork.freedesktop.org/patch/msgid/20190829103301.3539-15-kr axel@redhat.com
I also tested kernel 5.6-rc2 which has the same bug. Without kvm, the display is fine.
Regards, Guillaume