virtio-gpu: track and limit host memory allocations
commit9b7621bca2f70dc1a9815d50f05261296a8ae932
authorGerd Hoffmann <kraxel@redhat.com>
Tue, 29 Nov 2016 12:42:36 +0000 (29 13:42 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Tue, 20 Dec 2016 13:19:08 +0000 (20 14:19 +0100)
tree882f01fa3e0bf4f0179c463d0077560aa8af8e6e
parentabd7f08b2353f43274b785db8c7224f082ef4d31
virtio-gpu: track and limit host memory allocations

This patch makes virtio-gpu track host memory allocations for ressources
and applies a limit (configurable 256M by default).  When exceeding the
limit virtio-gpu throws VIRTIO_GPU_RESP_ERR_OUT_OF_MEMORY errors (like
it already does today when pixman image allocations fail).

This patch covers 2d mode only.  For 3d mode we have to figure how we
are going to handle this best.  qemu doesn't track resources in case
virglrenderer is used, so I guess we should extend virglrenderer to
allow setting a limit, then let qemu set the limit and catch
virgl_renderer_resource_create failures.

Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: 李强 <liqiang6-s@360.cn>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 1480423356-22255-1-git-send-email-kraxel@redhat.com
hw/display/virtio-gpu.c
include/hw/virtio/virtio-gpu.h