public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Boris Brezillon <boris.brezillon@collabora.com>
Cc: IGT development <igt-dev@lists.freedesktop.org>,
	Keith Packard <keithp@keithp.com>,
	DRI Development <dri-devel@lists.freedesktop.org>
Subject: Re: [igt-dev] [PATCH 4/7] drm/lease: Check for lessor outside of locks
Date: Wed, 3 Apr 2019 09:04:03 +0200	[thread overview]
Message-ID: <20190403070403.GN2665@phenom.ffwll.local> (raw)
In-Reply-To: <20190314090725.0a79f285@collabora.com>

On Thu, Mar 14, 2019 at 09:07:25AM +0100, Boris Brezillon wrote:
> On Thu, 28 Feb 2019 15:49:07 +0100
> Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
> 
> > The lessor is invariant over a lifetime of a lease, we don't have to
> > grab any locks for that. Speeds up the common case of not being a lease.
> > 
> > Cc: Keith Packard <keithp@keithp.com>
> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > ---
> >  drivers/gpu/drm/drm_lease.c | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/drm_lease.c b/drivers/gpu/drm/drm_lease.c
> > index cce5d9dd52ff..694ff363a90b 100644
> > --- a/drivers/gpu/drm/drm_lease.c
> > +++ b/drivers/gpu/drm/drm_lease.c
> > @@ -111,7 +111,7 @@ static bool _drm_has_leased(struct drm_master *master, int id)
> >   */
> >  bool _drm_lease_held(struct drm_file *file_priv, int id)
> >  {
> > -	if (file_priv == NULL || file_priv->master == NULL)
> > +	if (!file_priv || !file_priv->master)
> 
> Looks like you're doing unrelated cosmetic changes in the same patch.
> Maybe mention that in the commit message, or move that to a separate
> patch.

The next hunk would have broken the 80 limit with the == NULL check, so I
changed those for consistency too because ocd. I can mention that in the
commit message.
> 
> >  		return true;
> >  
> >  	return _drm_lease_held_master(file_priv->master, id);
> > @@ -133,7 +133,7 @@ bool drm_lease_held(struct drm_file *file_priv, int id)
> >  	struct drm_master *master;
> >  	bool ret;
> >  
> > -	if (file_priv == NULL || file_priv->master == NULL)
> > +	if (!file_priv || !file_priv->master || !file_priv->master->lessor)
> >  		return true;
> >  
> >  	master = file_priv->master;
> > @@ -159,7 +159,7 @@ uint32_t drm_lease_filter_crtcs(struct drm_file *file_priv, uint32_t crtcs_in)
> >  	int count_in, count_out;
> >  	uint32_t crtcs_out = 0;
> >  
> > -	if (file_priv == NULL || file_priv->master == NULL)
> > +	if (!file_priv || !file_priv->master || !file_priv->master->lessor)
> >  		return crtcs_in;
> >  
> >  	master = file_priv->master;
> 
> Couldn't we also remove the if (master->lessor) check done in
> _drm_lease_held_master()?

How? For !master->lessor (which is the case for all top-level masters,
i.e. one created by opening the /dev node and not through the create lease
ioctl) there's no lease idr. These are handled by the unconditional return
true. And there's some call chains leading to this which don't first check
for master->lessor (the object find stuff through _drm_lease_held).

Also confused by "also remove", this patch doesn't drop any checks, just
adds them outside of the lock to extend existing fastpaths.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  parent reply	other threads:[~2019-04-03  7:04 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-28 14:49 [igt-dev] [PATCH 0/7] some cleanups and uapi clarification for leases Daniel Vetter
2019-02-28 14:49 ` [igt-dev] [PATCH 1/7] drm/leases: Drop object_id validation for negative ids Daniel Vetter
2019-03-14  7:54   ` Boris Brezillon
2019-03-29  4:46     ` Dave Airlie
2019-03-29  8:28       ` Daniel Vetter
2019-02-28 14:49 ` [igt-dev] [PATCH 2/7] drm/lease: Drop recursive leads checks Daniel Vetter
2019-03-14  8:44   ` Boris Brezillon
2019-02-28 14:49 ` [igt-dev] [PATCH 3/7] drm/leases: Don't init to 0 in drm_master_create Daniel Vetter
2019-03-14  7:56   ` Boris Brezillon
2019-03-29  4:47     ` Dave Airlie
2019-02-28 14:49 ` [igt-dev] [PATCH 4/7] drm/lease: Check for lessor outside of locks Daniel Vetter
2019-03-14  8:07   ` Boris Brezillon
2019-04-03  1:33     ` Dave Airlie
2019-04-03  7:04     ` Daniel Vetter [this message]
2019-04-03  7:50       ` Boris Brezillon
2019-02-28 14:49 ` [igt-dev] [PATCH 5/7] drm/lease: Make sure implicit planes are leased Daniel Vetter
2019-03-05 13:35   ` Sasha Levin
2019-02-28 14:49 ` [igt-dev] [PATCH 6/7] drm/atomic: Wire file_priv through for property changes Daniel Vetter
2019-02-28 14:49 ` [igt-dev] [PATCH 7/7] drm/atomic: -EACCESS for lease-denied crtc lookup Daniel Vetter
2019-03-14  8:58 ` [igt-dev] [PATCH 0/7] some cleanups and uapi clarification for leases Boris Brezillon
2019-04-05  2:40   ` Dave Airlie
2019-04-24  9:31     ` Daniel Vetter

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=20190403070403.GN2665@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=boris.brezillon@collabora.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=keithp@keithp.com \
    /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