Received: by 2002:a05:6a10:6006:0:0:0:0 with SMTP id w6csp1167655pxa; Fri, 28 Aug 2020 05:47:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzdYSDkhpHwzyyrMbn9jmi/7PbwYv2QvjAhjJ2yFUQU9r81LodpZFQJoiN1crGwKJQ2roDf X-Received: by 2002:a17:906:bb06:: with SMTP id jz6mr1572975ejb.275.1598618847431; Fri, 28 Aug 2020 05:47:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598618847; cv=none; d=google.com; s=arc-20160816; b=tOlUKsBEMwqlJL4/vYARSu43camuko1iVepPjorOfgwfa40wOcfIKmVH+lzWuNWBIV 3700t6FrxUE3LpJW2DJrjK7QwPPK5/r3uordBnkdMheTU9x3dk8Bo7W9sXANjIsmegmJ KyYyUnloV0Ds/Jzot+24fpBDP2bsdgr/4mJU2yrj8VUwwBpfEcb9+2UlZR6M7KnkPFNp U5FDUyGbRP/lHQBH5CKpHAcUYakHvRj2WyhZ1qWbbrZyAJMmIxXL7urNV5YAI2/olhKh jVhSzyqBxSBlo57+EHGUy8vITz2BysO/aqLsoRHrfp8CW67iByp5jAQrhrEdtXmBVtNe H41g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=LV/s2CXjmyhaK0LBWgRhhTyeIospCDq6TJzHGpvnT6g=; b=pyOiMI8ky7GCjOrzt0kffsA5lOUVCtocU+7a0pP9dcnAxCIgNIvd7IMKe2JuAILE7b 4gId3Bp1wxkpngsmY/xf+Ze9cYFKrFl60XxGKl44Fn0rdDXe6GglfrZhjS6GSlbbpVE8 z92mkGpTWmBpTMZzE+mN3CjjVwgqOhg/nkPatnAFs/Ao1oDpfgsXbcEAlDMBzfszAYzX uawixeAL23VshGYgdBo9jgi3AsoSuI64Qr4zEW5AyWlDcG18mDfdvihKWuYZ97agKXGK W2EQftC9rAzeEhOVqt5v5ZgM0Eki5FxhVuMN4zspQ7QJilW5AW3j5qeInLi03kybfD3V TxbA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=LWFJgGfD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r5si521145edo.295.2020.08.28.05.47.04; Fri, 28 Aug 2020 05:47:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=LWFJgGfD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729234AbgH1MqO (ORCPT + 99 others); Fri, 28 Aug 2020 08:46:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39764 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729052AbgH1MqH (ORCPT ); Fri, 28 Aug 2020 08:46:07 -0400 Received: from mail-pl1-x644.google.com (mail-pl1-x644.google.com [IPv6:2607:f8b0:4864:20::644]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E5513C061264 for ; Fri, 28 Aug 2020 05:46:06 -0700 (PDT) Received: by mail-pl1-x644.google.com with SMTP id k13so396388plk.13 for ; Fri, 28 Aug 2020 05:46:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=LV/s2CXjmyhaK0LBWgRhhTyeIospCDq6TJzHGpvnT6g=; b=LWFJgGfDyKBtY5lmHYWRLbRndAjD016GbhtAM2jdvCP4MpD96uhACFDW2/tC1qgetI pjEg1cuwysDRp1hauaUd0PV+OvjYYdFqtA/0rCnWwvh2HsY8NkP4Nk2wXw3UqQjqdHi0 rzfFtqxxfhcIQdKSfxc+Njr+rdFD/efrWPaCsZBYp5mtG2dQsfgCimHs0K9nVIMuZrbc kvzpgq8orLyx1gVegYmLbXhBrxpP2vCpcVsnfN9nW7dFUnEPezCW4QCyOMPjr15I6iJ+ CZyhml0+ucHExmV+BVrpipGTkMX7psbPiH/Z4+oSE9Xu7RsJ4NtiAvcZBcCmOBjtMmjA XrTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=LV/s2CXjmyhaK0LBWgRhhTyeIospCDq6TJzHGpvnT6g=; b=sL4wjkHtNGX2Ho8Hh5UCfFSHnrS+sIPOlh7/bd2uW0/7q3CCAhYeyWwt5dY2museC8 eC2fffjrErVhUGsBIW/rAzCkyNC5md6RWz+/CqvuN8Ke7/khFOCDwyMt24VCecIVqAJ6 fdVe0y1394yik73afXNUPRlj3lgvGEzNXnwVNNS4f9LsUxFeU+t8h1rUzK9tlgEpJCO6 I/S1KiATjY9SXmzn8jhDdepVPBPgceV2kNtddmIeasK3BWVEtkmSCMWo62bs/o4whToI z+CskCyHMOUZuQfEdVRIm/6MwIVNPQVeArpljEhCgwM7VjX855Tw66WKegXOQosPGVVE WQAw== X-Gm-Message-State: AOAM533IhIsH5SYiedR94dAdl2EglJxiI+IGXdS2xpw6iwK3mLm15iTs QYIupnk77ntlwCLf+u0beDY= X-Received: by 2002:a17:90a:de89:: with SMTP id n9mr1090213pjv.50.1598618765344; Fri, 28 Aug 2020 05:46:05 -0700 (PDT) Received: from realwakka.navercorp.com ([61.83.141.80]) by smtp.gmail.com with ESMTPSA id 79sm1665930pfw.97.2020.08.28.05.46.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Aug 2020 05:46:04 -0700 (PDT) From: Sidong Yang To: Daniel Vetter , Rodrigo Siqueira , Melissa Wen Cc: Sidong Yang , Haneen Mohammed , Emil Velikov , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: [PATCH v3] drm/vkms: avoid warning in vkms_get_vblank_timestamp Date: Fri, 28 Aug 2020 12:45:53 +0000 Message-Id: <20200828124553.2178-1-realwakka@gmail.com> X-Mailer: git-send-email 2.17.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch avoid the warning in vkms_get_vblank_timestamp when vblanks aren't enabled. When running igt test kms_cursor_crc just after vkms module, the warning raised like below. Initial value of vblank time is zero and hrtimer.node.expires is also zero if vblank aren't enabled before. vkms module isn't real hardware but just virtual hardware module. so vkms can't generate a resonable timestamp when hrtimer is off. it's best to grab the current time. [106444.464503] [IGT] kms_cursor_crc: starting subtest pipe-A-cursor-size-change [106444.471475] WARNING: CPU: 0 PID: 10109 at /home/realwakka/git/linux/drivers/gpu/drm/vkms//vkms_crtc.c:91 vkms_get_vblank_timestamp+0x42/0x50 [vkms] [106444.471511] CPU: 0 PID: 10109 Comm: kms_cursor_crc Tainted: G W OE 5.9.0-rc1+ #6 [106444.471514] RIP: 0010:vkms_get_vblank_timestamp+0x42/0x50 [vkms] [106444.471528] Call Trace: [106444.471551] drm_get_last_vbltimestamp+0xb9/0xd0 [drm] [106444.471566] drm_reset_vblank_timestamp+0x63/0xe0 [drm] [106444.471579] drm_crtc_vblank_on+0x85/0x150 [drm] [106444.471582] vkms_crtc_atomic_enable+0xe/0x10 [vkms] [106444.471592] drm_atomic_helper_commit_modeset_enables+0x1db/0x230 [drm_kms_helper] [106444.471594] vkms_atomic_commit_tail+0x38/0xc0 [vkms] [106444.471601] commit_tail+0x97/0x130 [drm_kms_helper] [106444.471608] drm_atomic_helper_commit+0x117/0x140 [drm_kms_helper] [106444.471622] drm_atomic_commit+0x4a/0x50 [drm] [106444.471629] drm_atomic_helper_set_config+0x63/0xb0 [drm_kms_helper] [106444.471642] drm_mode_setcrtc+0x1d9/0x7b0 [drm] [106444.471654] ? drm_mode_getcrtc+0x1a0/0x1a0 [drm] [106444.471666] drm_ioctl_kernel+0xb6/0x100 [drm] [106444.471677] drm_ioctl+0x3ad/0x470 [drm] [106444.471688] ? drm_mode_getcrtc+0x1a0/0x1a0 [drm] [106444.471692] ? tomoyo_file_ioctl+0x19/0x20 [106444.471694] __x64_sys_ioctl+0x96/0xd0 [106444.471697] do_syscall_64+0x37/0x80 [106444.471699] entry_SYSCALL_64_after_hwframe+0x44/0xa9 Cc: Daniel Vetter Cc: Rodrigo Siqueira Cc: Haneen Mohammed Cc: Melissa Wen Signed-off-by: Sidong Yang --- v3: - add cc. v2: - modify commit message to make it a bit easier to understand. --- drivers/gpu/drm/vkms/vkms_crtc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c index ac85e17428f8..09c012d54d58 100644 --- a/drivers/gpu/drm/vkms/vkms_crtc.c +++ b/drivers/gpu/drm/vkms/vkms_crtc.c @@ -86,6 +86,11 @@ static bool vkms_get_vblank_timestamp(struct drm_crtc *crtc, struct vkms_output *output = &vkmsdev->output; struct drm_vblank_crtc *vblank = &dev->vblank[pipe]; + if (!READ_ONCE(vblank->enabled)) { + *vblank_time = ktime_get(); + return true; + } + *vblank_time = READ_ONCE(output->vblank_hrtimer.node.expires); if (WARN_ON(*vblank_time == vblank->time)) -- 2.17.1