From: Thomas Zimmermann <tzimmermann@suse.de>
To: simona@ffwll.ch, michel.daenzer@mailbox.org,
louis.chauvet@bootlin.com, ville.syrjala@linux.intel.com,
jani.nikula@intel.com, mhklkml@zohomail.com,
maarten.lankhorst@linux.intel.com, mripard@kernel.org,
airlied@gmail.com
Cc: dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org,
virtualization@lists.linux.dev,
Thomas Zimmermann <tzimmermann@suse.de>
Subject: [PATCH 0/7] drm/vblank: timer: Fix timestamps and improve reliabilty
Date: Mon, 1 Jun 2026 16:08:28 +0200 [thread overview]
Message-ID: <20260601141922.91498-1-tzimmermann@suse.de> (raw)
It appears that the DRM's vblank timers have always been somewhat buggy
in their timestamp calculations. Fix the generic implementation and
improve reliability.
Patch 1 returns success/failure to the caller, as expected by DRM.
Patch 2 fixes the timestamp calculation to return the time of the first
visible scanline in the current vblank phase.
Patch 3 switches the hrtimer to absolute values since boot, so that it's
easier to work with and we can predict future timestamps reliably.
Patches 4 and 5 allow for estimating timestamps even with the timer
being disabled.
Patches 6 and 7 improve the retrieval of the next vblank timeout's
timestamp.
Tested under heavy CPU-load on bochs and virtio. No ersors or warnings
showed up.
There have been reports about vblank timeouts being handled so late,
that they trigger DRM's internal error checks. Maybe these fixes and
adjustments can help to further avoid hick ups from delayed vblank
timers.
Thomas Zimmermann (7):
drm/vblank: timer: Return success status from get_vblank_timeout
drm/vblank: timer: Fix timestamp calculation
drm/vblank: timer: Use absolute timer since boot
drm/vblank: timer: Reorganize get_vblank_timeout
drm/vblank: timer: Estimate vblank timeout if timer is disabled
drm/vblank: timer: Verify that expiry time is in the future
drm/vblank: timer: Avoid reading the vblank time unnecessarily
drivers/gpu/drm/drm_vblank.c | 105 ++++++++++++++++++++--------
drivers/gpu/drm/drm_vblank_helper.c | 4 +-
include/drm/drm_vblank.h | 2 +-
3 files changed, 79 insertions(+), 32 deletions(-)
base-commit: 4f554688dffcacf48630c14f9fb77a9f60394c1c
--
2.54.0
next reply other threads:[~2026-06-01 14:19 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-01 14:08 Thomas Zimmermann [this message]
2026-06-01 14:08 ` [PATCH 1/7] drm/vblank: timer: Return success status from get_vblank_timeout Thomas Zimmermann
2026-06-04 4:03 ` Claude review: " Claude Code Review Bot
2026-06-01 14:08 ` [PATCH 2/7] drm/vblank: timer: Fix timestamp calculation Thomas Zimmermann
2026-06-01 16:24 ` Michel Dänzer
2026-06-01 17:30 ` Thomas Zimmermann
2026-06-02 14:14 ` Michel Dänzer
2026-06-04 4:03 ` Claude review: " Claude Code Review Bot
2026-06-01 14:08 ` [PATCH 3/7] drm/vblank: timer: Use absolute timer since boot Thomas Zimmermann
2026-06-04 4:03 ` Claude review: " Claude Code Review Bot
2026-06-01 14:08 ` [PATCH 4/7] drm/vblank: timer: Reorganize get_vblank_timeout Thomas Zimmermann
2026-06-04 4:03 ` Claude review: " Claude Code Review Bot
2026-06-01 14:08 ` [PATCH 5/7] drm/vblank: timer: Estimate vblank timeout if timer is disabled Thomas Zimmermann
2026-06-04 4:03 ` Claude review: " Claude Code Review Bot
2026-06-01 14:08 ` [PATCH 6/7] drm/vblank: timer: Verify that expiry time is in the future Thomas Zimmermann
2026-06-04 4:03 ` Claude review: " Claude Code Review Bot
2026-06-01 14:08 ` [PATCH 7/7] drm/vblank: timer: Avoid reading the vblank time unnecessarily Thomas Zimmermann
2026-06-04 4:04 ` Claude review: " Claude Code Review Bot
2026-06-04 4:03 ` Claude review: drm/vblank: timer: Fix timestamps and improve reliabilty Claude Code Review Bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260601141922.91498-1-tzimmermann@suse.de \
--to=tzimmermann@suse.de \
--cc=airlied@gmail.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=louis.chauvet@bootlin.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mhklkml@zohomail.com \
--cc=michel.daenzer@mailbox.org \
--cc=mripard@kernel.org \
--cc=simona@ffwll.ch \
--cc=ville.syrjala@linux.intel.com \
--cc=virtualization@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox