dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: "Christian König" <ckoenig.leichtzumerken@gmail.com>
Cc: dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/4] locking/ww_mutex: add ww_mutex_is_owned_by function v3
Date: Tue, 20 Feb 2018 15:02:52 +0100	[thread overview]
Message-ID: <20180220140252.GU22199@phenom.ffwll.local> (raw)
In-Reply-To: <20180220125829.27060-1-christian.koenig@amd.com>

On Tue, Feb 20, 2018 at 01:58:26PM +0100, Christian König wrote:
> amdgpu needs to verify if userspace sends us valid addresses and the simplest
> way of doing this is to check if the buffer object is locked with the ticket
> of the current submission.
> 
> Clean up the access to the ww_mutex internals by providing a function
> for this and extend the check to the thread owning the underlying mutex.
> 
> v2: split amdgpu changes into separate patch as suggested by Alex
> v3: change logic as suggested by Daniel
> 
> Signed-off-by: Christian König <christian.koenig@amd.com>
> ---
>  include/linux/ww_mutex.h | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
> 
> diff --git a/include/linux/ww_mutex.h b/include/linux/ww_mutex.h
> index 39fda195bf78..14e4149d3d9d 100644
> --- a/include/linux/ww_mutex.h
> +++ b/include/linux/ww_mutex.h
> @@ -358,4 +358,21 @@ static inline bool ww_mutex_is_locked(struct ww_mutex *lock)
>  	return mutex_is_locked(&lock->base);
>  }
>  
> +/**
> + * ww_mutex_is_owned_by - is the w/w mutex locked by this task in that context
> + * @lock: the mutex to be queried
> + * @ctx: the w/w acquire context to test
> + *
> + * If @ctx is not NULL test if the mutex is owned by this context.
> + * If @ctx is NULL test if the mutex is owned by the current thread.

This is a bit much how and not so much why, but I couldn't come up with a
concise text what was materially better.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> + */
> +static inline bool ww_mutex_is_owned_by(struct ww_mutex *lock,
> +					struct ww_acquire_ctx *ctx)
> +{
> +	if (ctx)
> +		return likely(READ_ONCE(lock->ctx) == ctx);
> +	else
> +		return likely(__mutex_owner(&lock->base) == current);
> +}
> +
>  #endif
> -- 
> 2.14.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

      parent reply	other threads:[~2018-02-20 14:02 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-20 12:58 [PATCH 1/4] locking/ww_mutex: add ww_mutex_is_owned_by function v3 Christian König
     [not found] ` <20180220125829.27060-1-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-02-20 12:58   ` [PATCH 2/4] drm/amdgpu: use new ww_mutex_is_owned_by function Christian König
     [not found]     ` <20180220125829.27060-2-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-02-23  9:48       ` He, Roger
2018-02-20 12:58   ` [PATCH 3/4] drm/ttm: handle already locked BOs during eviction and swapout Christian König
     [not found]     ` <20180220125829.27060-3-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-02-23  9:46       ` He, Roger
2018-02-23 12:05         ` Christian König
     [not found]           ` <6eadbbea-8eca-a1ab-93bb-d37ae6e5f29d-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-02-24  3:36             ` He, Roger
     [not found]               ` <MWHPR1201MB01278E573419210283D68640FDC30-3iK1xFAIwjq9imrIu4W8xGrFom/aUZj6nBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2018-02-24  3:46                 ` He, Roger
2018-02-20 12:58   ` [PATCH 4/4] drm/ttm: keep BOs reserved until end of eviction Christian König
     [not found]     ` <20180220125829.27060-4-christian.koenig-5C7GfCeVMHo@public.gmane.org>
2018-02-23  9:29       ` He, Roger
2018-02-20 13:12 ` [PATCH 1/4] locking/ww_mutex: add ww_mutex_is_owned_by function v3 Peter Zijlstra
     [not found]   ` <20180220131253.GF25314-Nxj+rRp3nVydTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2018-02-20 13:26     ` Christian König
2018-02-20 13:57       ` Peter Zijlstra
2018-02-20 14:34         ` Christian König
2018-02-20 14:54           ` Peter Zijlstra
2018-02-20 15:05             ` Christian König
2018-02-20 15:21               ` Peter Zijlstra
2018-02-20 23:56                 ` Daniel Vetter
     [not found]                   ` <20180220235621.GD22199-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2018-02-21 10:54                     ` Maarten Lankhorst
     [not found]                       ` <9d782099-567f-38cb-391a-3c2a50cd5edd-FcfepWsj2zOByvU0x3ry2g@public.gmane.org>
2018-02-21 11:50                         ` Christian König
2018-02-21 21:10     ` Emil Velikov
2018-02-20 14:02 ` Daniel Vetter [this message]

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=20180220140252.GU22199@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=ckoenig.leichtzumerken@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    /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