Received: by 10.223.185.116 with SMTP id b49csp3501045wrg; Mon, 5 Mar 2018 23:30:35 -0800 (PST) X-Google-Smtp-Source: AG47ELuWcQ5YSLdRmIEqbi9UUbKGmZrdEMJC56L8/XJo3z6ZTdSrOf7FyYOf57ebv7C1Lexsc6Qk X-Received: by 10.101.81.204 with SMTP id i12mr14330405pgq.206.1520321435080; Mon, 05 Mar 2018 23:30:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520321435; cv=none; d=google.com; s=arc-20160816; b=eLLxxCIyaI5gxmaSZwTUXmy2esKobV6asLKTGMZ89B9yE5eLYa68kOQEW3h0ZcFLQh 7IscFZ3tUZutxE0Wqa298hLC/1vkLRl7tV35W2gq8bSfOAd6XdbWuppBI0NXWdDcLpw9 a25n5gsSdRk+7Dr035FFD30rMQLJF0NMzyPfq0aAatHyyKUjju5Aw6rUMMma2akzjyeQ C7EF99spc/joX53KqoKKddv8hjOM63yi+L6Cc1iZhCscyEnMnaIipVSfR8pHqh0wJQu+ V7jCr0zQzdJIZJon/Eb++OCViDGuDu7JJV0ZkTszpfotJKOM/aegrHXGxAYpHaHOWPUS H4QA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:mail-followup-to :message-id:subject:cc:to:from:date:dkim-signature :arc-authentication-results; bh=sBEp7vO19ubdYT7N2Gb3etU46WyuqOgjQoviSIY/S/k=; b=1EcCDP1BsksRbDxC6x1x24gDX3BIntN6F7uWkLwiNRGTICZfX1VBozvZB+BWwvg3gj NIKwEbteVetPD+csZmR9vKu5WR+9ax2U61pkNzVS5yfxNTuXwtF184Z68mYWJrkAbLtI W4n9KOc8KmNVWodG2GaRKAsJiRKqowRcbh21FZVpC6XRuq5o5kVqmgP2b8fKBIDvylaG NyHD8eJDvwmRZiFlEGG94wlai01mblCNmTDyIj4564elUK/gIP3hUCrsMr2hxWUr7iBt CRlo40HYT0/Bjic+UQvGgdtsZEQEelLmm1WlF/wKOCcTHKxD66fjXqM4nytfBgNssy/u OQVg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@ffwll.ch header.s=google header.b=LrXfd62O; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v20-v6si10838481plo.199.2018.03.05.23.30.20; Mon, 05 Mar 2018 23:30:35 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@ffwll.ch header.s=google header.b=LrXfd62O; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750933AbeCFH32 (ORCPT + 99 others); Tue, 6 Mar 2018 02:29:28 -0500 Received: from mail-wm0-f67.google.com ([74.125.82.67]:34220 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750769AbeCFH3Z (ORCPT ); Tue, 6 Mar 2018 02:29:25 -0500 Received: by mail-wm0-f67.google.com with SMTP id a20so16619057wmd.1 for ; Mon, 05 Mar 2018 23:29:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=sender:date:from:to:cc:subject:message-id:mail-followup-to :references:mime-version:content-disposition:in-reply-to:user-agent; bh=sBEp7vO19ubdYT7N2Gb3etU46WyuqOgjQoviSIY/S/k=; b=LrXfd62Olscd1HqhumhIwpxU6G3T96QXekhMU54L8M2WuvZHuel372v1YgnJX1m5oO Sp5URelPLfitylb4Dfq8CwcxZiHMeg9iuAPqP4pVedzp6sabCd9XQNoRT9glDSl1jj4U BfA2fodJ6NblltSAkglwJk/iiPX2UTbYZujD4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :in-reply-to:user-agent; bh=sBEp7vO19ubdYT7N2Gb3etU46WyuqOgjQoviSIY/S/k=; b=R4GqKPs0SpuQffzPrDSa0jhFHfJoFD7XM6Zl1H1D3awLv7WSOJ8zSGXRb58L7Sw4o5 bo7F7s5mzjzfSfwwlhxslFWtvEieRxpowwpj+7lod63PMHkjGu56nMT2No1dDEiS1yKX q3KMRrjy2DkHl3RSv0Wv3O0W4YxM98SqOF+6C/WHeb+Mh2HjCAXeJ8Hbyqk/L79Ajzms 4OmOw88BEUkU3JE4iG3dqIYlg4nYc9YGNaG477qOHZj4OGEvVwWcyoVB7g75IDkfntyL Hg9mUNsPBxNKmY5jT1qrutQEr4gnWe5G+1NtjXgqgLe7T/0Ksuqh6OUrNmuUbzdlyF/+ oXMA== X-Gm-Message-State: AElRT7HEWqZ+3dQx5cwAqsRDYFeCAtigA11riCuNcR0btytH1q8FKwwW k4WZLBuGHiOIUpx0UY9WSn9hFFVi X-Received: by 10.80.143.227 with SMTP id y90mr5886820edy.63.1520321364051; Mon, 05 Mar 2018 23:29:24 -0800 (PST) Received: from phenom.ffwll.local ([2a02:168:5635:0:39d2:f87e:2033:9f6]) by smtp.gmail.com with ESMTPSA id z17sm24593471edz.35.2018.03.05.23.29.22 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 05 Mar 2018 23:29:22 -0800 (PST) Date: Tue, 6 Mar 2018 08:29:20 +0100 From: Daniel Vetter To: Maarten Lankhorst Cc: Rob Clark , dri-devel@lists.freedesktop.org, Archit Taneja , linux-arm-msm@vger.kernel.org, Gustavo Padovan , Sean Paul , David Airlie , linux-kernel@vger.kernel.org, Daniel Vetter Subject: Re: [PATCH 1/4] drm/atomic: integrate modeset lock with private objects Message-ID: <20180306072920.GR22212@phenom.ffwll.local> Mail-Followup-To: Maarten Lankhorst , Rob Clark , dri-devel@lists.freedesktop.org, Archit Taneja , linux-arm-msm@vger.kernel.org, Gustavo Padovan , Sean Paul , David Airlie , linux-kernel@vger.kernel.org References: <20180221143730.30285-1-robdclark@gmail.com> <20180221143730.30285-2-robdclark@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Operating-System: Linux phenom 4.14.0-3-amd64 User-Agent: Mutt/1.9.3 (2018-01-21) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Feb 21, 2018 at 04:19:40PM +0100, Maarten Lankhorst wrote: > Hey, > > Op 21-02-18 om 15:37 schreef Rob Clark: > > Follow the same pattern of locking as with other state objects. This > > avoids boilerplate in the driver. > I'm afraid this will prohibit any uses of this on i915, since it still uses legacy lock_all(). > > Oh well, afaict nothing in i915 uses private objects, so I don't think it's harmful. :) We do use private objects, as part of dp mst helpers. But I also thought that the only users left of lock_all are in the debugfs code, where this really doesn't matter all that much. > Could you cc intel-gfx just in case? Yeah, best to double-check with CI. > > Signed-off-by: Rob Clark > > --- > > drivers/gpu/drm/drm_atomic.c | 9 ++++++++- > > include/drm/drm_atomic.h | 5 +++++ > > 2 files changed, 13 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c > > index fc8c4da409ff..004e621ab307 100644 > > --- a/drivers/gpu/drm/drm_atomic.c > > +++ b/drivers/gpu/drm/drm_atomic.c > > @@ -1078,6 +1078,8 @@ drm_atomic_private_obj_init(struct drm_private_obj *obj, > > { > > memset(obj, 0, sizeof(*obj)); > > > > + drm_modeset_lock_init(&obj->lock); > > + > > obj->state = state; > > obj->funcs = funcs; > > } > > @@ -1093,6 +1095,7 @@ void > > drm_atomic_private_obj_fini(struct drm_private_obj *obj) > > { > > obj->funcs->atomic_destroy_state(obj, obj->state); > > + drm_modeset_lock_fini(&obj->lock); > > } > > EXPORT_SYMBOL(drm_atomic_private_obj_fini); > > > > @@ -1113,7 +1116,7 @@ struct drm_private_state * > > drm_atomic_get_private_obj_state(struct drm_atomic_state *state, > > struct drm_private_obj *obj) > > { > > - int index, num_objs, i; > > + int index, num_objs, i, ret; > > size_t size; > > struct __drm_private_objs_state *arr; > > struct drm_private_state *obj_state; > > @@ -1122,6 +1125,10 @@ drm_atomic_get_private_obj_state(struct drm_atomic_state *state, > > if (obj == state->private_objs[i].ptr) > > return state->private_objs[i].state; > > > > + ret = drm_modeset_lock(&obj->lock, state->acquire_ctx); > > + if (ret) > > + return ERR_PTR(ret); > > + > > num_objs = state->num_private_objs + 1; > > size = sizeof(*state->private_objs) * num_objs; > > arr = krealloc(state->private_objs, size, GFP_KERNEL); > > diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h > > index 09076a625637..9ae53b73c9d2 100644 > > --- a/include/drm/drm_atomic.h > > +++ b/include/drm/drm_atomic.h > > @@ -218,6 +218,11 @@ struct drm_private_state_funcs { > > * &drm_modeset_lock is required to duplicate and update this object's state. > > */ > > struct drm_private_obj { > > + /** > > + * @lock: Modeset lock to protect the state object. > > + */ > > + struct drm_modeset_lock lock; > > + > > /** > > * @state: Current atomic state for this driver private object. > > */ > > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch