Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/msm: Avoid rounding down to zero jiffies

If userspace asked for a timeout greater than zero, but less than a
jiffy, they clearly weren't planning on spinning. So it is better
to round up to one.

This fixes an issue with supertuxkart that was (for some reason)
spinning on a gl sync with 1ms timeout. CPU time for a demo lap
drops from:

15.83user 20.98system 0:47.46elapsed 77%CPU

drops to:

8.84user 2.30system 0:46.67elapsed 23%CPU

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/528725/
Link: https://lore.kernel.org/r/20230324220013.191795-1-robdclark@gmail.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

authored by

Rob Clark and committed by
Dmitry Baryshkov
4969bccd f1af066b

+1 -1
+1 -1
drivers/gpu/drm/msm/msm_drv.h
··· 548 548 remaining_jiffies = ktime_divns(rem, NSEC_PER_SEC / HZ); 549 549 } 550 550 551 - return clamp(remaining_jiffies, 0LL, (s64)INT_MAX); 551 + return clamp(remaining_jiffies, 1LL, (s64)INT_MAX); 552 552 } 553 553 554 554 /* Driver helpers */