All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] drm/virtio: .release ops for virtgpu fence release
@ 2022-05-11  0:06 Dongwon Kim
  2022-05-11  0:06 ` [PATCH 2/3] drm/virtio: fence created per cursor/plane update Dongwon Kim
  2022-05-11  0:06 ` [PATCH 3/3] drm/virtio: use the fence for every plane update Dongwon Kim
  0 siblings, 2 replies; 8+ messages in thread
From: Dongwon Kim @ 2022-05-11  0:06 UTC (permalink / raw)
  To: dri-devel; +Cc: Vivek Kasireddy, Gerd Hoffmann, Dongwon Kim, Gurchetan Singh

virtio_gpu_fence_release is added to free virtio-gpu-fence
upon release of dma_fence.

Cc: Gurchetan Singh <gurchetansingh@chromium.org>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Vivek Kasireddy <vivek.kasireddy@intel.com>
Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>
---
 drivers/gpu/drm/virtio/virtgpu_fence.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/virtio/virtgpu_fence.c b/drivers/gpu/drm/virtio/virtgpu_fence.c
index f28357dbde35..ba659ac2a51d 100644
--- a/drivers/gpu/drm/virtio/virtgpu_fence.c
+++ b/drivers/gpu/drm/virtio/virtgpu_fence.c
@@ -63,12 +63,20 @@ static void virtio_gpu_timeline_value_str(struct dma_fence *f, char *str,
 		 (u64)atomic64_read(&fence->drv->last_fence_id));
 }
 
+static void virtio_gpu_fence_release(struct dma_fence *f)
+{
+	struct virtio_gpu_fence *fence = to_virtio_gpu_fence(f);
+
+	kfree(fence);
+}
+
 static const struct dma_fence_ops virtio_gpu_fence_ops = {
 	.get_driver_name     = virtio_gpu_get_driver_name,
 	.get_timeline_name   = virtio_gpu_get_timeline_name,
 	.signaled            = virtio_gpu_fence_signaled,
 	.fence_value_str     = virtio_gpu_fence_value_str,
 	.timeline_value_str  = virtio_gpu_timeline_value_str,
+	.release	     = virtio_gpu_fence_release,
 };
 
 struct virtio_gpu_fence *virtio_gpu_fence_alloc(struct virtio_gpu_device *vgdev,
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread
* Re: [PATCH 3/3] drm/virtio: use the fence for every plane update
  2022-05-11  0:06 ` [PATCH 3/3] drm/virtio: use the fence for every plane update Dongwon Kim
  2022-05-11  7:10     ` kernel test robot
@ 2022-05-11 13:37 ` Dan Carpenter
  0 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2022-05-11 13:28 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 4542 bytes --]

CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
In-Reply-To: <20220511000623.12938-3-dongwon.kim@intel.com>
References: <20220511000623.12938-3-dongwon.kim@intel.com>
TO: Dongwon Kim <dongwon.kim@intel.com>
TO: dri-devel(a)lists.freedesktop.org
CC: Vivek Kasireddy <vivek.kasireddy@intel.com>
CC: Gerd Hoffmann <kraxel@redhat.com>
CC: Dongwon Kim <dongwon.kim@intel.com>
CC: Gurchetan Singh <gurchetansingh@chromium.org>

Hi Dongwon,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on drm/drm-next]
[also build test WARNING on drm-exynos/exynos-drm-next drm-intel/for-linux-next drm-tip/drm-tip tegra-drm/drm/tegra/for-next v5.18-rc6 next-20220510]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/intel-lab-lkp/linux/commits/Dongwon-Kim/drm-virtio-release-ops-for-virtgpu-fence-release/20220511-081226
base:   git://anongit.freedesktop.org/drm/drm drm-next
:::::: branch date: 13 hours ago
:::::: commit date: 13 hours ago
config: parisc-randconfig-m031-20220509 (https://download.01.org/0day-ci/archive/20220511/202205112132.FqtvzLWA-lkp(a)intel.com/config)
compiler: hppa-linux-gcc (GCC) 11.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/gpu/drm/virtio/virtgpu_plane.c:158 virtio_gpu_resource_flush() error: uninitialized symbol 'objs'.

vim +/objs +158 drivers/gpu/drm/virtio/virtgpu_plane.c

544c521d4ab8f2 Gerd Hoffmann   2019-10-23  131  
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  132  static void virtio_gpu_resource_flush(struct drm_plane *plane,
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  133  				      uint32_t x, uint32_t y,
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  134  				      uint32_t width, uint32_t height)
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  135  {
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  136  	struct drm_device *dev = plane->dev;
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  137  	struct virtio_gpu_device *vgdev = dev->dev_private;
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  138  	struct virtio_gpu_framebuffer *vgfb;
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  139  	struct virtio_gpu_object *bo;
47558b189c1d34 Dongwon Kim     2022-05-10  140  	struct virtio_gpu_object_array *objs;
47558b189c1d34 Dongwon Kim     2022-05-10  141  	struct virtio_gpu_fence *fence;
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  142  
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  143  	vgfb = to_virtio_gpu_framebuffer(plane->state->fb);
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  144  	bo = gem_to_virtio_gpu_obj(vgfb->base.obj[0]);
5c7787de5069b5 Dongwon Kim     2022-05-10  145  	fence = virtio_gpu_fence_alloc(vgdev, vgdev->fence_drv.context, 0);
47558b189c1d34 Dongwon Kim     2022-05-10  146  
47558b189c1d34 Dongwon Kim     2022-05-10  147  	if (fence) {
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  148  		objs = virtio_gpu_array_alloc(1);
47558b189c1d34 Dongwon Kim     2022-05-10  149  		if (!objs) {
47558b189c1d34 Dongwon Kim     2022-05-10  150  			kfree(fence);
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  151  			return;
47558b189c1d34 Dongwon Kim     2022-05-10  152  		}
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  153  		virtio_gpu_array_add_obj(objs, vgfb->base.obj[0]);
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  154  		virtio_gpu_array_lock_resv(objs);
47558b189c1d34 Dongwon Kim     2022-05-10  155  	}
47558b189c1d34 Dongwon Kim     2022-05-10  156  
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  157  	virtio_gpu_cmd_resource_flush(vgdev, bo->hw_res_handle, x, y,
47558b189c1d34 Dongwon Kim     2022-05-10 @158  				      width, height, objs, fence);
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  159  	virtio_gpu_notify(vgdev);
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  160  
47558b189c1d34 Dongwon Kim     2022-05-10  161  	if (fence) {
47558b189c1d34 Dongwon Kim     2022-05-10  162  		dma_fence_wait_timeout(&fence->f, true,
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  163  				       msecs_to_jiffies(50));
47558b189c1d34 Dongwon Kim     2022-05-10  164  		dma_fence_put(&fence->f);
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  165  	}
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  166  }
5c68ab9276aae4 Vivek Kasireddy 2021-06-10  167  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-05-11 13:38 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-05-11  0:06 [PATCH 1/3] drm/virtio: .release ops for virtgpu fence release Dongwon Kim
2022-05-11  0:06 ` [PATCH 2/3] drm/virtio: fence created per cursor/plane update Dongwon Kim
2022-05-11  0:06 ` [PATCH 3/3] drm/virtio: use the fence for every plane update Dongwon Kim
2022-05-11  7:10   ` kernel test robot
2022-05-11  7:10     ` kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2022-05-11 13:28 kernel test robot
2022-05-11 13:37 ` Dan Carpenter
2022-05-11 13:37 ` Dan Carpenter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.