[virglrenderer-devel] dropped the ball on caps sets
Dave Airlie
airlied at gmail.com
Thu Feb 15 03:12:01 UTC 2018
Hey,
So it does look like I dropped the ball in the kernel on exposing cap
sets, and due to some other issues it's not an easy ball to pick up
again.
For the status quo, if we update the cap set size in virglrenderer,
due to the kernel bug, old mesa in the guest will get memory
corruptions. As the kernel copies the caps size to userspace, not
limited to
what userspace passes in.
I attempted to find a way to signal from the guest kernel to the host
some sort of unlock command for the caps. So a new kernel in guest
could send a trapdoor unlock to the host virglrenderer if the cap set
was >= 1. However due to another bug (qemu doesn't call
virgl_renderer_reset on reset), I can't lock the trapdoor again. So
the new kernel, old kernel sequence blows up if you don't poweroff in
between.
This leads me to think I have to nuke it and start again, so I'd use a
second capset and fix the renderer, qemu, kernel and mesa to work and
make thing work in the future.
Stephane I suggest for current dEQP we just drop the maximums in the
virgl mesa driver to the lowest we know about and when the new caps
work it'll magically start working.
Gerd, any other ideas?
Dave.
More information about the virglrenderer-devel
mailing list