From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: Re: [PATCH 3/4] drm/v3d: Clean up the reservation object setup. Date: Tue, 13 Nov 2018 11:22:49 +0100 Message-ID: <20181113112249.532ed593@bbrezillon> References: <20181108161654.19888-1-eric@anholt.net> <20181108161654.19888-4-eric@anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.bootlin.com (mail.bootlin.com [62.4.15.54]) by gabe.freedesktop.org (Postfix) with ESMTP id 59CD06E312 for ; Tue, 13 Nov 2018 10:22:50 +0000 (UTC) In-Reply-To: <20181108161654.19888-4-eric@anholt.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Eric Anholt Cc: Daniel Vetter , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCAgOCBOb3YgMjAxOCAwODoxNjo1MyAtMDgwMApFcmljIEFuaG9sdCA8ZXJpY0Bhbmhv bHQubmV0PiB3cm90ZToKCj4gVGhlIGV4dHJhIHRvX3YzZF9ibygpIGNhbGxzIGNhbWUgZnJvbSBj b3B5aW5nIHRoaXMgZnJvbSB0aGUgdmM0Cj4gZHJpdmVyLCB3aGljaCBzdG9yZWQgdGhlIGNtYSBn ZW0gb2JqZWN0IGluIHRoZSBzdHJ1Y3RzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEVyaWMgQW5ob2x0 IDxlcmljQGFuaG9sdC5uZXQ+CgpSZXZpZXdlZC1ieTogQm9yaXMgQnJlemlsbG9uIDxib3Jpcy5i cmV6aWxsb25AYm9vdGxpbi5jb20+Cgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9n ZW0uYyB8IDMyICsrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFu Z2VkLCAxMSBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3YzZC92M2RfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vdjNkL3YzZF9n ZW0uYwo+IGluZGV4IGI4OGM5NjkxMTQ1My4uZDBkZmRjYmJkNDJjIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS92M2QvdjNkX2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3YzZC92 M2RfZ2VtLmMKPiBAQCAtMjE0LDEwICsyMTQsOCBAQCB2M2RfYXR0YWNoX29iamVjdF9mZW5jZXMo c3RydWN0IHYzZF9leGVjX2luZm8gKmV4ZWMpCj4gIAlpbnQgaTsKPiAgCj4gIAlmb3IgKGkgPSAw OyBpIDwgZXhlYy0+Ym9fY291bnQ7IGkrKykgewo+IC0JCWJvID0gdG9fdjNkX2JvKCZleGVjLT5i b1tpXS0+YmFzZSk7Cj4gLQo+ICAJCS8qIFhYWDogVXNlIHNoYXJlZCBmZW5jZXMgZm9yIHJlYWQt b25seSBvYmplY3RzLiAqLwo+IC0JCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShi by0+cmVzdiwgb3V0X2ZlbmNlKTsKPiArCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX2V4Y2xfZmVu Y2UoZXhlYy0+Ym9baV0tPnJlc3YsIG91dF9mZW5jZSk7Cj4gIAl9Cj4gIH0KPiAgCj4gQEAgLTIy OCwxMSArMjI2LDggQEAgdjNkX3VubG9ja19ib19yZXNlcnZhdGlvbnMoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiAgewo+ICAJaW50IGk7Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IGV4ZWMtPmJv X2NvdW50OyBpKyspIHsKPiAtCQlzdHJ1Y3QgdjNkX2JvICpibyA9IHRvX3YzZF9ibygmZXhlYy0+ Ym9baV0tPmJhc2UpOwo+IC0KPiAtCQl3d19tdXRleF91bmxvY2soJmJvLT5yZXN2LT5sb2NrKTsK PiAtCX0KPiArCWZvciAoaSA9IDA7IGkgPCBleGVjLT5ib19jb3VudDsgaSsrKQo+ICsJCXd3X211 dGV4X3VubG9jaygmZXhlYy0+Ym9baV0tPnJlc3YtPmxvY2spOwo+ICAKPiAgCXd3X2FjcXVpcmVf ZmluaShhY3F1aXJlX2N0eCk7Cj4gIH0KPiBAQCAtMjUxLDEzICsyNDYsMTMgQEAgdjNkX2xvY2tf Ym9fcmVzZXJ2YXRpb25zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIHsKPiAgCWludCBjb250 ZW5kZWRfbG9jayA9IC0xOwo+ICAJaW50IGksIHJldDsKPiAtCXN0cnVjdCB2M2RfYm8gKmJvOwo+ ICAKPiAgCXd3X2FjcXVpcmVfaW5pdChhY3F1aXJlX2N0eCwgJnJlc2VydmF0aW9uX3d3X2NsYXNz KTsKPiAgCj4gIHJldHJ5Ogo+ICAJaWYgKGNvbnRlbmRlZF9sb2NrICE9IC0xKSB7Cj4gLQkJYm8g PSB0b192M2RfYm8oJmV4ZWMtPmJvW2NvbnRlbmRlZF9sb2NrXS0+YmFzZSk7Cj4gKwkJc3RydWN0 IHYzZF9ibyAqYm8gPSBleGVjLT5ib1tjb250ZW5kZWRfbG9ja107Cj4gKwo+ICAJCXJldCA9IHd3 X211dGV4X2xvY2tfc2xvd19pbnRlcnJ1cHRpYmxlKCZiby0+cmVzdi0+bG9jaywKPiAgCQkJCQkJ ICAgICAgIGFjcXVpcmVfY3R4KTsKPiAgCQlpZiAocmV0KSB7Cj4gQEAgLTI3MCwxOSArMjY1LDE2 IEBAIHYzZF9sb2NrX2JvX3Jlc2VydmF0aW9ucyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJ CWlmIChpID09IGNvbnRlbmRlZF9sb2NrKQo+ICAJCQljb250aW51ZTsKPiAgCj4gLQkJYm8gPSB0 b192M2RfYm8oJmV4ZWMtPmJvW2ldLT5iYXNlKTsKPiAtCj4gLQkJcmV0ID0gd3dfbXV0ZXhfbG9j a19pbnRlcnJ1cHRpYmxlKCZiby0+cmVzdi0+bG9jaywgYWNxdWlyZV9jdHgpOwo+ICsJCXJldCA9 IHd3X211dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmZXhlYy0+Ym9baV0tPnJlc3YtPmxvY2ssCj4g KwkJCQkJCSAgYWNxdWlyZV9jdHgpOwo+ICAJCWlmIChyZXQpIHsKPiAgCQkJaW50IGo7Cj4gIAo+ IC0JCQlmb3IgKGogPSAwOyBqIDwgaTsgaisrKSB7Cj4gLQkJCQlibyA9IHRvX3YzZF9ibygmZXhl Yy0+Ym9bal0tPmJhc2UpOwo+IC0JCQkJd3dfbXV0ZXhfdW5sb2NrKCZiby0+cmVzdi0+bG9jayk7 Cj4gLQkJCX0KPiArCQkJZm9yIChqID0gMDsgaiA8IGk7IGorKykKPiArCQkJCXd3X211dGV4X3Vu bG9jaygmZXhlYy0+Ym9bal0tPnJlc3YtPmxvY2spOwo+ICAKPiAgCQkJaWYgKGNvbnRlbmRlZF9s b2NrICE9IC0xICYmIGNvbnRlbmRlZF9sb2NrID49IGkpIHsKPiAtCQkJCWJvID0gdG9fdjNkX2Jv KCZleGVjLT5ib1tjb250ZW5kZWRfbG9ja10tPmJhc2UpOwo+ICsJCQkJc3RydWN0IHYzZF9ibyAq Ym8gPSBleGVjLT5ib1tjb250ZW5kZWRfbG9ja107Cj4gIAo+ICAJCQkJd3dfbXV0ZXhfdW5sb2Nr KCZiby0+cmVzdi0+bG9jayk7Cj4gIAkJCX0KPiBAQCAtMzAzLDkgKzI5NSw3IEBAIHYzZF9sb2Nr X2JvX3Jlc2VydmF0aW9ucyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJICogYmVmb3JlIHdl IGNvbW1pdCB0aGUgQ0wgdG8gdGhlIGhhcmR3YXJlLgo+ICAJICovCj4gIAlmb3IgKGkgPSAwOyBp IDwgZXhlYy0+Ym9fY291bnQ7IGkrKykgewo+IC0JCWJvID0gdG9fdjNkX2JvKCZleGVjLT5ib1tp XS0+YmFzZSk7Cj4gLQo+IC0JCXJldCA9IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJl ZChiby0+cmVzdiwgMSk7Cj4gKwkJcmV0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hh cmVkKGV4ZWMtPmJvW2ldLT5yZXN2LCAxKTsKPiAgCQlpZiAocmV0KSB7Cj4gIAkJCXYzZF91bmxv Y2tfYm9fcmVzZXJ2YXRpb25zKGRldiwgZXhlYywgYWNxdWlyZV9jdHgpOwo+ICAJCQlyZXR1cm4g cmV0OwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9F1BDC43441 for ; Tue, 13 Nov 2018 10:22:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 710A320684 for ; Tue, 13 Nov 2018 10:22:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 710A320684 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bootlin.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732255AbeKMUUR (ORCPT ); Tue, 13 Nov 2018 15:20:17 -0500 Received: from mail.bootlin.com ([62.4.15.54]:44066 "EHLO mail.bootlin.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732030AbeKMUUR (ORCPT ); Tue, 13 Nov 2018 15:20:17 -0500 Received: by mail.bootlin.com (Postfix, from userid 110) id 2E5C020726; Tue, 13 Nov 2018 11:22:49 +0100 (CET) Received: from bbrezillon (aaubervilliers-681-1-30-49.w90-88.abo.wanadoo.fr [90.88.15.49]) by mail.bootlin.com (Postfix) with ESMTPSA id E1F7A20714; Tue, 13 Nov 2018 11:22:48 +0100 (CET) Date: Tue, 13 Nov 2018 11:22:49 +0100 From: Boris Brezillon To: Eric Anholt Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Daniel Vetter Subject: Re: [PATCH 3/4] drm/v3d: Clean up the reservation object setup. Message-ID: <20181113112249.532ed593@bbrezillon> In-Reply-To: <20181108161654.19888-4-eric@anholt.net> References: <20181108161654.19888-1-eric@anholt.net> <20181108161654.19888-4-eric@anholt.net> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 8 Nov 2018 08:16:53 -0800 Eric Anholt wrote: > The extra to_v3d_bo() calls came from copying this from the vc4 > driver, which stored the cma gem object in the structs. > > Signed-off-by: Eric Anholt Reviewed-by: Boris Brezillon > --- > drivers/gpu/drm/v3d/v3d_gem.c | 32 +++++++++++--------------------- > 1 file changed, 11 insertions(+), 21 deletions(-) > > diff --git a/drivers/gpu/drm/v3d/v3d_gem.c b/drivers/gpu/drm/v3d/v3d_gem.c > index b88c96911453..d0dfdcbbd42c 100644 > --- a/drivers/gpu/drm/v3d/v3d_gem.c > +++ b/drivers/gpu/drm/v3d/v3d_gem.c > @@ -214,10 +214,8 @@ v3d_attach_object_fences(struct v3d_exec_info *exec) > int i; > > for (i = 0; i < exec->bo_count; i++) { > - bo = to_v3d_bo(&exec->bo[i]->base); > - > /* XXX: Use shared fences for read-only objects. */ > - reservation_object_add_excl_fence(bo->resv, out_fence); > + reservation_object_add_excl_fence(exec->bo[i]->resv, out_fence); > } > } > > @@ -228,11 +226,8 @@ v3d_unlock_bo_reservations(struct drm_device *dev, > { > int i; > > - for (i = 0; i < exec->bo_count; i++) { > - struct v3d_bo *bo = to_v3d_bo(&exec->bo[i]->base); > - > - ww_mutex_unlock(&bo->resv->lock); > - } > + for (i = 0; i < exec->bo_count; i++) > + ww_mutex_unlock(&exec->bo[i]->resv->lock); > > ww_acquire_fini(acquire_ctx); > } > @@ -251,13 +246,13 @@ v3d_lock_bo_reservations(struct drm_device *dev, > { > int contended_lock = -1; > int i, ret; > - struct v3d_bo *bo; > > ww_acquire_init(acquire_ctx, &reservation_ww_class); > > retry: > if (contended_lock != -1) { > - bo = to_v3d_bo(&exec->bo[contended_lock]->base); > + struct v3d_bo *bo = exec->bo[contended_lock]; > + > ret = ww_mutex_lock_slow_interruptible(&bo->resv->lock, > acquire_ctx); > if (ret) { > @@ -270,19 +265,16 @@ v3d_lock_bo_reservations(struct drm_device *dev, > if (i == contended_lock) > continue; > > - bo = to_v3d_bo(&exec->bo[i]->base); > - > - ret = ww_mutex_lock_interruptible(&bo->resv->lock, acquire_ctx); > + ret = ww_mutex_lock_interruptible(&exec->bo[i]->resv->lock, > + acquire_ctx); > if (ret) { > int j; > > - for (j = 0; j < i; j++) { > - bo = to_v3d_bo(&exec->bo[j]->base); > - ww_mutex_unlock(&bo->resv->lock); > - } > + for (j = 0; j < i; j++) > + ww_mutex_unlock(&exec->bo[j]->resv->lock); > > if (contended_lock != -1 && contended_lock >= i) { > - bo = to_v3d_bo(&exec->bo[contended_lock]->base); > + struct v3d_bo *bo = exec->bo[contended_lock]; > > ww_mutex_unlock(&bo->resv->lock); > } > @@ -303,9 +295,7 @@ v3d_lock_bo_reservations(struct drm_device *dev, > * before we commit the CL to the hardware. > */ > for (i = 0; i < exec->bo_count; i++) { > - bo = to_v3d_bo(&exec->bo[i]->base); > - > - ret = reservation_object_reserve_shared(bo->resv, 1); > + ret = reservation_object_reserve_shared(exec->bo[i]->resv, 1); > if (ret) { > v3d_unlock_bo_reservations(dev, exec, acquire_ctx); > return ret;