[PATCH 85/86] drm: move drm_timeout_abs_to_jiffies to drm_util
Thomas Zimmermann
tzimmermann at suse.de
Tue Jan 24 11:25:44 UTC 2023
Hi
Am 23.01.23 um 21:46 schrieb Sam Ravnborg:
> Hi Thomas,
>
> On Mon, Jan 23, 2023 at 09:57:13AM +0100, Thomas Zimmermann wrote:
>> Hi Sam,
>>
>> please see my comment below.
>>
>> Am 21.01.23 um 21:09 schrieb Sam Ravnborg via B4 Submission Endpoint:
>>> From: Sam Ravnborg <sam at ravnborg.org>
>>>
>>> drm_timeout_abs_to_jiffies() was implmented in drm_syncobj where
>>> it really did not belong. Create a drm_util file and move the
>>> implementation. Likewise move the prototype and update all users.
>>>
>>> Suggested-by: Daniel Vetter <daniel at ffwll.ch>
>>> [https://lore.kernel.org/dri-devel/20190527185311.GS21222@phenom.ffwll.local/]
>>> Cc: Daniel Vetter <daniel at ffwll.ch>
>>> Signed-off-by: Sam Ravnborg <sam at ravnborg.org>
>>> ---
>>> drivers/accel/ivpu/ivpu_gem.c | 2 +-
>>> drivers/gpu/drm/Makefile | 1 +
>>> drivers/gpu/drm/drm_syncobj.c | 34 ----------------------------
>>> drivers/gpu/drm/drm_util.c | 40 +++++++++++++++++++++++++++++++++
>>> drivers/gpu/drm/lima/lima_gem.c | 2 +-
>>> drivers/gpu/drm/panfrost/panfrost_drv.c | 2 +-
>>> drivers/gpu/drm/tegra/uapi.c | 2 +-
>>> include/drm/drm_util.h | 1 +
>>> include/drm/drm_utils.h | 2 --
>>> 9 files changed, 46 insertions(+), 40 deletions(-)
>>>
>>> diff --git a/drivers/accel/ivpu/ivpu_gem.c b/drivers/accel/ivpu/ivpu_gem.c
>>> index d1f923971b4c..55aa94ba6c10 100644
>>> --- a/drivers/accel/ivpu/ivpu_gem.c
>>> +++ b/drivers/accel/ivpu/ivpu_gem.c
>>> @@ -12,7 +12,7 @@
>>> #include <drm/drm_cache.h>
>>> #include <drm/drm_debugfs.h>
>>> #include <drm/drm_file.h>
>>> -#include <drm/drm_utils.h>
>>> +#include <drm/drm_util.h>
>>> #include "ivpu_drv.h"
>>> #include "ivpu_gem.h"
>>> diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile
>>> index ab4460fcd63f..561b93d19685 100644
>>> --- a/drivers/gpu/drm/Makefile
>>> +++ b/drivers/gpu/drm/Makefile
>>> @@ -42,6 +42,7 @@ drm-y := \
>>> drm_syncobj.o \
>>> drm_sysfs.o \
>>> drm_trace_points.o \
>>> + drm_util.o \
>>> drm_vblank.o \
>>> drm_vblank_work.o \
>>> drm_vma_manager.o \
>>> diff --git a/drivers/gpu/drm/drm_syncobj.c b/drivers/gpu/drm/drm_syncobj.c
>>> index 0c2be8360525..35f5416c5cfe 100644
>>> --- a/drivers/gpu/drm/drm_syncobj.c
>>> +++ b/drivers/gpu/drm/drm_syncobj.c
>>> @@ -197,7 +197,6 @@
>>> #include <drm/drm_gem.h>
>>> #include <drm/drm_print.h>
>>> #include <drm/drm_syncobj.h>
>>> -#include <drm/drm_utils.h>
>>> #include "drm_internal.h"
>>> @@ -1114,39 +1113,6 @@ static signed long drm_syncobj_array_wait_timeout(struct drm_syncobj **syncobjs,
>>> return timeout;
>>> }
>>> -/**
>>> - * drm_timeout_abs_to_jiffies - calculate jiffies timeout from absolute value
>>> - *
>>> - * @timeout_nsec: timeout nsec component in ns, 0 for poll
>>> - *
>>> - * Calculate the timeout in jiffies from an absolute time in sec/nsec.
>>> - */
>>> -signed long drm_timeout_abs_to_jiffies(int64_t timeout_nsec)
>
> Thanks for the critical look at this!
>
>>
>> This function converts an absolute timeout in nsec to a relative timeout in
>> jiffies. (?)
>>
>> It appears to me as if this helper should not exist. It uses a mixture of
>> different time interfaces; combined with hardcoded policy for 0 and
>> MAX_SCHEDULE_TIMEOUT.
>>
>> There are only 3 callers of this helper. I think we should consider inlining
>> it in each.
>>
>> As part of this, maybe the use of ktime could go away. Convert nsecs to
>> jiffies and do the rest of the computation in jiffies.
>
> I blindly copied the existing function and did not consider the
> implementation. Looking for a helper that do what we needs here turned
> up empty. I also looked at your suggestion to do:
> nsec in absolute => jiffies in absolute => jiffies in relative
> But did not find something that is better than what we have.
>
> I will leave it for now, and focus on the other parts of the patchset.
> In the vain hope someone else takes a look.
No problem. You can add
Reviewed-by: Thomas Zimmermann <tzimmermann at suse.de>
to patches 85 and 86 as well.
Best regards
Thomas
>
> Sam
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20230124/b3ca02ae/attachment-0001.sig>
More information about the dri-devel
mailing list