Skip to content

Commit e86f339

Browse files
committed
debug for vblank and fence timeout
Signed-off-by: Xue, Bosheng <bosheng.xue@intel.com>
1 parent 6a74e23 commit e86f339

5 files changed

Lines changed: 20 additions & 3 deletions

File tree

drivers/dma-buf/sync_file.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,21 @@ static void fence_check_cb_func(struct dma_fence *f, struct dma_fence_cb *cb)
6565
struct sync_file *sync_file_create(struct dma_fence *fence)
6666
{
6767
struct sync_file *sync_file;
68+
const char *name = NULL;
6869

6970
sync_file = sync_file_alloc();
7071
if (!sync_file)
7172
return NULL;
7273

7374
sync_file->fence = dma_fence_get(fence);
75+
if (sync_file->fence) {
76+
sync_file->type = 0;
77+
name = sync_file->fence->ops->get_driver_name(fence);
78+
if (strcmp(name, "virtio_gpu") == 0)
79+
sync_file->type = 1;
80+
if (strcmp(name, "drm_sched") == 0)
81+
sync_file->type = 2;
82+
}
7483

7584
return sync_file;
7685
}
@@ -333,6 +342,7 @@ static long sync_file_ioctl_fence_info(struct sync_file *sync_file,
333342
}
334343

335344
no_fences:
345+
printk(KERN_ERR "bosheng sync file name:%d\n", sync_file->type);
336346
sync_file_get_name(sync_file, info.name, sizeof(info.name));
337347
info.num_fences = num_fences;
338348

drivers/gpu/drm/drm_file.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -717,6 +717,7 @@ void drm_event_cancel_free(struct drm_device *dev,
717717
{
718718
unsigned long flags;
719719

720+
printk(KERN_ERR "bosheng drm event cancel free\n");
720721
spin_lock_irqsave(&dev->event_lock, flags);
721722
if (p->file_priv) {
722723
p->file_priv->event_space += p->event->length;

drivers/gpu/drm/virtio/virtgpu_display.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -499,8 +499,10 @@ virtio_gpu_wait_for_vblanks(struct drm_device *dev,
499499
drm_crtc_vblank_count(crtc)),
500500
msecs_to_jiffies(100));
501501

502-
WARN(!ret, "[CRTC:%d:%s] vblank wait timed out\n",
503-
crtc->base.id, crtc->name);
502+
// WARN(!ret, "[CRTC:%d:%s] vblank wait timed out\n",
503+
// crtc->base.id, crtc->name);
504+
if (ret == 0)
505+
pr_err("bosheng wait vblank timeout\n");
504506

505507
drm_crtc_vblank_put(crtc);
506508
}

drivers/gpu/drm/virtio/virtgpu_plane.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,7 @@ static void virtio_gpu_resource_flush(struct drm_plane *plane,
349349
struct virtio_gpu_framebuffer *vgfb;
350350
struct virtio_gpu_plane_state *vgplane_st;
351351
struct virtio_gpu_object *bo;
352+
int ret = 0;
352353

353354
vgfb = to_virtio_gpu_framebuffer(plane->state->fb);
354355
vgplane_st = to_virtio_gpu_plane_state(plane->state);
@@ -365,8 +366,10 @@ static void virtio_gpu_resource_flush(struct drm_plane *plane,
365366
width, height, objs,
366367
vgplane_st->fence);
367368
virtio_gpu_notify(vgdev);
368-
dma_fence_wait_timeout(&vgplane_st->fence->f, true,
369+
ret = dma_fence_wait_timeout(&vgplane_st->fence->f, true,
369370
msecs_to_jiffies(50));
371+
if (ret <= 0)
372+
printk("bosheng resource flush timeout ret:%d\n", ret);
370373
} else {
371374
virtio_gpu_cmd_resource_flush(vgdev, bo->hw_res_handle, x, y,
372375
width, height, NULL, NULL);

include/linux/sync_file.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ struct sync_file {
5151

5252
struct dma_fence *fence;
5353
struct dma_fence_cb cb;
54+
int type;
5455
};
5556

5657
#define POLL_ENABLED 0

0 commit comments

Comments
 (0)