dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Sam Ravnborg <sam@ravnborg.org>
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH 85/86] drm: move drm_timeout_abs_to_jiffies to drm_util
Date: Mon, 23 Jan 2023 21:46:32 +0100	[thread overview]
Message-ID: <Y87yKPS1UfwL9xp4@ravnborg.org> (raw)
In-Reply-To: <43f60723-e1f9-8991-d930-16fec3896219@suse.de>

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@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@ffwll.ch>
> > [https://lore.kernel.org/dri-devel/20190527185311.GS21222@phenom.ffwll.local/]
> > Cc: Daniel Vetter <daniel@ffwll.ch>
> > Signed-off-by: Sam Ravnborg <sam@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.

	Sam

  reply	other threads:[~2023-01-23 20:46 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-21 20:07 [PATCH 00/86] drm: Header file maintenance Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 01/86] drm/komeda: Direct include headers from drm_print Sam Ravnborg via B4 Submission Endpoint
2023-01-23  7:57   ` Thomas Zimmermann
2023-01-21 20:07 ` [PATCH 02/86] drm/bridge: ite-it6505: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 03/86] drm/bridge: panel: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 04/86] drm/msm: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 05/86] drm/nouveau: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 06/86] drm/omapdrm: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 07/86] drm/radeon: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 08/86] drm/ttm: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 09/86] drm/scheduler: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 10/86] drm/armada: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 11/86] drm/sti: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 12/86] drm/vc4: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 13/86] drm/drm_print: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 14/86] drm/vmwgfx: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 15/86] drm/i915: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 16/86] drm/drm_print: Minimize include footprint Sam Ravnborg via B4 Submission Endpoint
2023-01-21 23:19   ` kernel test robot
2023-01-22 20:58     ` Sam Ravnborg
2023-01-24 15:51   ` kernel test robot
2023-01-21 20:07 ` [PATCH 17/86] drm/xlnx: Direct include headers from drm_atomic_helper Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 18/86] drm/amd: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 19/86] drm/komeda: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 20/86] drm/arm/hdlcd: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:07 ` [PATCH 21/86] drm/arm/malidp: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 22/86] drm/armada: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 23/86] drm/aspeed: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 24/86] drm/ast: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 25/86] drm/atmel-hlcdc: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 26/86] drm/bridge: adv7511: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 27/86] drm/bridge: analogix: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 28/86] drm/bridge: chipone: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 29/86] drm/bridge: chrontel: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 30/86] drm/bridge: display-connector: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 31/86] drm/bridge: fsl-ldb: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 32/86] drm/bridge: ite: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 33/86] drm/bridge: lontium: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 34/86] drm/bridge: lvds-codec: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 35/86] drm/bridge: megachips: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 36/86] drm/bridge: nxp: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 37/86] drm/bridge: panel: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 38/86] drm/bridge: sii902x: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 39/86] drm/bridge: simple-bridge: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 40/86] drm/bridge: synopsys: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 41/86] drm/bridge: tc358767: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 42/86] drm/bridge: ti: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 43/86] drm/display: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 44/86] drm: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 45/86] drm/exynos: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 46/86] drm/fsl-dcu: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 47/86] drm/gud: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 48/86] drm/hisilicon: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 49/86] drm/hyperv: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 50/86] drm/i2c: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 51/86] drm/i915: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 52/86] drm/imx: " Sam Ravnborg via B4 Submission Endpoint
2023-01-23  9:26   ` Philipp Zabel
2023-01-21 20:08 ` [PATCH 53/86] drm/ingenic: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 54/86] drm/kmb: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 55/86] drm/logicvc: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 56/86] drm/mcde: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 57/86] drm/mediatek: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 58/86] drm/meson: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 59/86] drm/mgag200: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 60/86] drm/msm: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 61/86] drm/mxsfb: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 62/86] drm/nouveau: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 63/86] drm/omapdrm: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 64/86] drm/qxl: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 65/86] drm/rcar-du: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 66/86] drm/rockchip: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 67/86] drm/solomon: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 68/86] drm/sprd: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 69/86] drm/sti: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 70/86] drm/stm: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 71/86] drm/sun4i: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 72/86] drm/tegra: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 73/86] drm/tests: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 74/86] drm/tidss: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 75/86] drm/tilcdc: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 76/86] drm/tiny: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 77/86] drm/udl: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 78/86] drm/vboxvideo: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 79/86] drm/vc4: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 80/86] drm/virtio: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:08 ` [PATCH 81/86] drm/vkms: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:09 ` [PATCH 82/86] drm/vmwgfx: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:09 ` [PATCH 83/86] drm/xen: " Sam Ravnborg via B4 Submission Endpoint
2023-01-21 20:09 ` [PATCH 84/86] drm/drm_atomic_helper: Minimize include footprint Sam Ravnborg via B4 Submission Endpoint
2023-01-23  7:59   ` Thomas Zimmermann
2023-01-21 20:09 ` [PATCH 85/86] drm: move drm_timeout_abs_to_jiffies to drm_util Sam Ravnborg via B4 Submission Endpoint
2023-01-23  8:57   ` Thomas Zimmermann
2023-01-23 20:46     ` Sam Ravnborg [this message]
2023-01-24 11:25       ` Thomas Zimmermann
2023-01-21 20:09 ` [PATCH 86/86] drm: Move drm_get_panel_orientation_quirk prototype to drm_panel Sam Ravnborg via B4 Submission Endpoint
2023-01-23  9:00 ` [PATCH 00/86] drm: Header file maintenance Thomas Zimmermann
2023-01-23 20:22   ` Sam Ravnborg

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=Y87yKPS1UfwL9xp4@ravnborg.org \
    --to=sam@ravnborg.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=tzimmermann@suse.de \
    /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