search for: virtio_gpu_array_add_f

Displaying 19 results from an estimated 19 matches for "virtio_gpu_array_add_f".

2019 Sep 04
2
[PATCH] drm/virtio: fix command submission with objects but without fence.
Only call virtio_gpu_array_add_fence if we actually have a fence. Fixes: da758d51968a ("drm/virtio: rework virtio_gpu_execbuffer_ioctl fencing") Signed-off-by: Gerd Hoffmann <kraxel at redhat.com> --- drivers/gpu/drm/virtio/virtgpu_vq.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/...
2019 Sep 04
2
[PATCH] drm/virtio: fix command submission with objects but without fence.
Only call virtio_gpu_array_add_fence if we actually have a fence. Fixes: da758d51968a ("drm/virtio: rework virtio_gpu_execbuffer_ioctl fencing") Signed-off-by: Gerd Hoffmann <kraxel at redhat.com> --- drivers/gpu/drm/virtio/virtgpu_vq.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/...
2019 Sep 05
1
[PATCH] drm/virtio: fix command submission with objects but without fence.
On Wed, Sep 04, 2019 at 04:10:30PM -0700, Chia-I Wu wrote: > On Wed, Sep 4, 2019 at 12:48 AM Gerd Hoffmann <kraxel at redhat.com> wrote: > > > > Only call virtio_gpu_array_add_fence if we actually have a fence. > > > > Fixes: da758d51968a ("drm/virtio: rework virtio_gpu_execbuffer_ioctl fencing") > > Signed-off-by: Gerd Hoffmann <kraxel at redhat.com> > > --- > > drivers/gpu/drm/virtio/virtgpu_vq.c | 9 +++++---- > > 1 f...
2019 Jul 04
2
[PATCH v6 08/18] drm/virtio: rework virtio_gpu_execbuffer_ioctl fencing
Hi, > > if (fence) > > virtio_gpu_fence_emit(vgdev, hdr, fence); > > + if (vbuf->objs) { > > + virtio_gpu_array_add_fence(vbuf->objs, &fence->f); > > + virtio_gpu_array_unlock_resv(vbuf->objs); > > + } > This is with the spinlock held. Maybe we should move the > virtio_gpu_array_unlock_resv call out of the critical section. That would bring back the race ... &g...
2019 Jul 04
2
[PATCH v6 08/18] drm/virtio: rework virtio_gpu_execbuffer_ioctl fencing
Hi, > > if (fence) > > virtio_gpu_fence_emit(vgdev, hdr, fence); > > + if (vbuf->objs) { > > + virtio_gpu_array_add_fence(vbuf->objs, &fence->f); > > + virtio_gpu_array_unlock_resv(vbuf->objs); > > + } > This is with the spinlock held. Maybe we should move the > virtio_gpu_array_unlock_resv call out of the critical section. That would bring back the race ... &g...
2019 Jul 02
3
[PATCH v6 07/18] drm/virtio: add virtio_gpu_object_array & helpers
Some helper functions to manage an array of gem objects. v6: - add ticket to struct virtio_gpu_object_array. - add virtio_gpu_array_{lock,unlock}_resv helpers. - add virtio_gpu_array_add_fence helper. v5: some small optimizations (Chia-I Wu). v4: make them virtio-private instead of generic helpers. Signed-off-by: Gerd Hoffmann <kraxel at redhat.com> --- drivers/gpu/drm/virtio/virtgpu_drv.h | 17 ++++++ drivers/gpu/drm/virtio/virtgpu_gem.c | 83 ++++++++++++++++++++++++++++ 2...
2019 Jul 02
3
[PATCH v6 07/18] drm/virtio: add virtio_gpu_object_array & helpers
Some helper functions to manage an array of gem objects. v6: - add ticket to struct virtio_gpu_object_array. - add virtio_gpu_array_{lock,unlock}_resv helpers. - add virtio_gpu_array_add_fence helper. v5: some small optimizations (Chia-I Wu). v4: make them virtio-private instead of generic helpers. Signed-off-by: Gerd Hoffmann <kraxel at redhat.com> --- drivers/gpu/drm/virtio/virtgpu_drv.h | 17 ++++++ drivers/gpu/drm/virtio/virtgpu_gem.c | 83 ++++++++++++++++++++++++++++ 2...
2019 Jul 02
2
[PATCH v6 08/18] drm/virtio: rework virtio_gpu_execbuffer_ioctl fencing
...(1) All gem objects needed by a command are added to a virtio_gpu_object_array. (2) All reservation objects will be locked (virtio_gpu_array_lock_resv). (3) virtio_gpu_fence_emit() completes fence initialization. (4) fence gets added to the objects, reservation objects are unlocked (virtio_gpu_array_add_fence, virtio_gpu_array_unlock_resv). (5) virtio command is submitted to the host. (6) The completion callback (virtio_gpu_dequeue_ctrl_func) will drop object references and free virtio_gpu_object_array. v6: rewrite most of the patch. Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>...
2019 Jul 02
2
[PATCH v6 08/18] drm/virtio: rework virtio_gpu_execbuffer_ioctl fencing
...(1) All gem objects needed by a command are added to a virtio_gpu_object_array. (2) All reservation objects will be locked (virtio_gpu_array_lock_resv). (3) virtio_gpu_fence_emit() completes fence initialization. (4) fence gets added to the objects, reservation objects are unlocked (virtio_gpu_array_add_fence, virtio_gpu_array_unlock_resv). (5) virtio command is submitted to the host. (6) The completion callback (virtio_gpu_dequeue_ctrl_func) will drop object references and free virtio_gpu_object_array. v6: rewrite most of the patch. Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>...
2019 Sep 04
0
[PATCH] drm/virtio: fix command submission with objects but without fence.
On Wed, Sep 4, 2019 at 12:48 AM Gerd Hoffmann <kraxel at redhat.com> wrote: > > Only call virtio_gpu_array_add_fence if we actually have a fence. > > Fixes: da758d51968a ("drm/virtio: rework virtio_gpu_execbuffer_ioctl fencing") > Signed-off-by: Gerd Hoffmann <kraxel at redhat.com> > --- > drivers/gpu/drm/virtio/virtgpu_vq.c | 9 +++++---- > 1 file changed, 5 insertions(+),...
2019 Jul 03
0
[PATCH v6 07/18] drm/virtio: add virtio_gpu_object_array & helpers
On Tue, Jul 2, 2019 at 7:19 AM Gerd Hoffmann <kraxel at redhat.com> wrote: > > Some helper functions to manage an array of gem objects. > > v6: > - add ticket to struct virtio_gpu_object_array. > - add virtio_gpu_array_{lock,unlock}_resv helpers. > - add virtio_gpu_array_add_fence helper. > v5: some small optimizations (Chia-I Wu). > v4: make them virtio-private instead of generic helpers. > > Signed-off-by: Gerd Hoffmann <kraxel at redhat.com> > --- > drivers/gpu/drm/virtio/virtgpu_drv.h | 17 ++++++ > drivers/gpu/drm/virtio/virtgpu_gem.c | 8...
2019 Aug 02
0
[PATCH v7 07/18] drm/virtio: add virtio_gpu_object_array & helpers
Some helper functions to manage an array of gem objects. v6: - add ticket to struct virtio_gpu_object_array. - add virtio_gpu_array_{lock,unlock}_resv helpers. - add virtio_gpu_array_add_fence helper. v5: some small optimizations (Chia-I Wu). v4: make them virtio-private instead of generic helpers. Signed-off-by: Gerd Hoffmann <kraxel at redhat.com> --- drivers/gpu/drm/virtio/virtgpu_drv.h | 17 +++++ drivers/gpu/drm/virtio/virtgpu_gem.c | 94 ++++++++++++++++++++++++++++ 2 f...
2019 Jul 03
1
[PATCH v6 07/18] drm/virtio: add virtio_gpu_object_array & helpers
...at 7:19 AM Gerd Hoffmann <kraxel at redhat.com> wrote: > > > > Some helper functions to manage an array of gem objects. > > > > v6: > > - add ticket to struct virtio_gpu_object_array. > > - add virtio_gpu_array_{lock,unlock}_resv helpers. > > - add virtio_gpu_array_add_fence helper. > > v5: some small optimizations (Chia-I Wu). > > v4: make them virtio-private instead of generic helpers. > > > > Signed-off-by: Gerd Hoffmann <kraxel at redhat.com> > > --- > > drivers/gpu/drm/virtio/virtgpu_drv.h | 17 ++++++ > > drive...
2019 Jul 03
0
[PATCH v6 08/18] drm/virtio: rework virtio_gpu_execbuffer_ioctl fencing
...eded by a command are added to a > virtio_gpu_object_array. > (2) All reservation objects will be locked (virtio_gpu_array_lock_resv). > (3) virtio_gpu_fence_emit() completes fence initialization. > (4) fence gets added to the objects, reservation objects are unlocked > (virtio_gpu_array_add_fence, virtio_gpu_array_unlock_resv). > (5) virtio command is submitted to the host. > (6) The completion callback (virtio_gpu_dequeue_ctrl_func) > will drop object references and free virtio_gpu_object_array. > > v6: rewrite most of the patch. > > Signed-off-by: Gerd Hoff...
2019 Jul 04
0
[PATCH v6 08/18] drm/virtio: rework virtio_gpu_execbuffer_ioctl fencing
On Thu, Jul 4, 2019 at 4:25 AM Gerd Hoffmann <kraxel at redhat.com> wrote: > > Hi, > > > > if (fence) > > > virtio_gpu_fence_emit(vgdev, hdr, fence); > > > + if (vbuf->objs) { > > > + virtio_gpu_array_add_fence(vbuf->objs, &fence->f); > > > + virtio_gpu_array_unlock_resv(vbuf->objs); > > > + } > > This is with the spinlock held. Maybe we should move the > > virtio_gpu_array_unlock_resv call out of the critical section. > > That woul...
2020 Jan 07
0
locking warnings in drm/virtio code
...] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 [ 37.718253] Call Trace: [ 37.718596] dump_stack (linux/lib/dump_stack.c:120) [ 37.719011] dma_resv_add_excl_fence (linux/./include/linux/dma-resv.h:246 linux/drivers/dma-buf/dma-resv.c:273) [...] [ 37.720278] virtio_gpu_array_add_fence (linux/drivers/gpu/drm/virtio/virtgpu_gem.c:230 (discriminator 3)) [ 37.720925] virtio_gpu_queue_fenced_ctrl_buffer (linux/drivers/gpu/drm/virtio/virtgpu_vq.c:391) [...] [ 37.724065] virtio_gpu_cursor_plane_update (linux/drivers/gpu/drm/virtio/virtgpu_plane.c:240) [ 37.724656] drm_atomic_...
2019 Aug 02
0
[PATCH v7 08/18] drm/virtio: rework virtio_gpu_execbuffer_ioctl fencing
...(1) All gem objects needed by a command are added to a virtio_gpu_object_array. (2) All reservation objects will be locked (virtio_gpu_array_lock_resv). (3) virtio_gpu_fence_emit() completes fence initialization. (4) fence gets added to the objects, reservation objects are unlocked (virtio_gpu_array_add_fence, virtio_gpu_array_unlock_resv). (5) virtio command is submitted to the host. (6) The completion callback (virtio_gpu_dequeue_ctrl_func) will drop object references and free virtio_gpu_object_array. v6: rewrite most of the patch. Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>...
2019 Sep 11
0
[PATCH v4 1/2] drm/virtio: Rewrite virtio_gpu_queue_ctrl_buffer using fenced version.
..._gpu_vbuffer *vbuf, struct virtio_gpu_ctrl_hdr *hdr, @@ -339,7 +327,7 @@ static void virtio_gpu_queue_fenced_ctrl_buffer(struct virtio_gpu_device *vgdev, goto again; } - if (fence) { + if (hdr && fence) { virtio_gpu_fence_emit(vgdev, hdr, fence); if (vbuf->objs) { virtio_gpu_array_add_fence(vbuf->objs, &fence->f); @@ -352,6 +340,12 @@ static void virtio_gpu_queue_fenced_ctrl_buffer(struct virtio_gpu_device *vgdev, virtqueue_notify(vgdev->ctrlq.vq); } +static void virtio_gpu_queue_ctrl_buffer(struct virtio_gpu_device *vgdev, + struct virtio_gpu_vbuffer *vbuf...
2019 Sep 03
0
[PATCH] drm/virtio: add worker for object release
...free_lock; > + struct list_head obj_free_list; > + > struct virtio_gpu_drv_capset *capsets; > uint32_t num_capsets; > struct list_head cap_cache; > @@ -246,6 +251,9 @@ void virtio_gpu_array_unlock_resv(struct virtio_gpu_object_array *objs); > void virtio_gpu_array_add_fence(struct virtio_gpu_object_array *objs, > struct dma_fence *fence); > void virtio_gpu_array_put_free(struct virtio_gpu_object_array *objs); > +void virtio_gpu_array_put_free_delayed(struct virtio_gpu_device *vgdev, > +...