From patchwork Mon Aug 29 07:08:25 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Wilson X-Patchwork-Id: 9303145 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 892BC601C0 for ; Mon, 29 Aug 2016 07:08:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7E21F28813 for ; Mon, 29 Aug 2016 07:08:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 72EE428816; Mon, 29 Aug 2016 07:08:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id AEC2228813 for ; Mon, 29 Aug 2016 07:08:50 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DC6306E017; Mon, 29 Aug 2016 07:08:46 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id F2F236E017; Mon, 29 Aug 2016 07:08:44 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id q128so8212404wma.1; Mon, 29 Aug 2016 00:08:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=v0QdniMOYRX/8ieU+hrpppGVWeUvyAi67QSIRmq9LXw=; b=JE2dsrxhFY7eUnD7oxjXYifQhAGWEtIZ39+zWeq7KZjsNHTN8HZ0f5NpK0vGMmce+o ignFrYAEwy+5oV6Hz6hx28U1dOko+S33wrV+Kz6aCDDJTeVEXrLXjhrik7JnIZJxl4gq tH5+iXGr1HFbmPE1qYO0xHFsSgwraQ2ClxjNgdkKS5HQkwLE6zlJgUqwum3xb7WYjrbf Z0dKFzQ4dVQWX0uJRleQErKcss7s2Ypw8R+TezqezKpXvyxlZFfy8pvPVoAATogxlYQj h4AJzEBDdhs8xD00XmJfSjEovKzsFXeBSP7Ba0L2aUn9CA27z4K6vueq/CIS0NhB9B8Q 8pag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=v0QdniMOYRX/8ieU+hrpppGVWeUvyAi67QSIRmq9LXw=; b=LnHLWFvSNTfZCDzhB0LgjOp+W6aHVS81j6u/WbkY7JUJ7/c3J/a0MIq0Ukxy65YfYK PB3qBSXkX0MZIQTgvM5/mPQXQ8JqMi8sy7rNCvM3bJmgMiJNTCi6Kc4dWFOA+pfsBAPl xE/t911tTVpPNXHP4EldJiMlMcOM/iGzcEHAO14Fbas6k4DdSmdJFlOlnos3FVHGJqMM isEZr9FLiaMm1/ddGfLgZ2fXs+w+gqD0UDNBeSAJ0tzr+Q6J/OGXYnCSjSftxVNfH5hW dEhn+zkSU10IfumG3UU/FzKsO5rJhbsgvyNAgjVd+zPiAptr/aOA80h4qReNidkNSRVR vlxQ== X-Gm-Message-State: AE9vXwMDWLL51ndPjwUnVFfvF0OajrZIBc4W8+p0eTptW4cAMzWhEtUXcTLKF8KMIHlfqQ== X-Received: by 10.195.13.18 with SMTP id eu18mr14055208wjd.121.1472454523624; Mon, 29 Aug 2016 00:08:43 -0700 (PDT) Received: from haswell.alporthouse.com ([78.156.65.138]) by smtp.gmail.com with ESMTPSA id v203sm11954826wmv.2.2016.08.29.00.08.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 29 Aug 2016 00:08:42 -0700 (PDT) From: Chris Wilson To: dri-devel@lists.freedesktop.org Subject: [PATCH 02/11] drm/etnaviv: Remove manual call to reservation_object_test_signaled_rcu before wait Date: Mon, 29 Aug 2016 08:08:25 +0100 Message-Id: <20160829070834.22296-2-chris@chris-wilson.co.uk> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20160829070834.22296-1-chris@chris-wilson.co.uk> References: <20160829070834.22296-1-chris@chris-wilson.co.uk> Cc: intel-gfx@lists.freedesktop.org, Russell King X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP Since fence_wait_timeout_reservation_object_wait_timeout_rcu() with a timeout of 0 becomes reservation_object_test_signaled_rcu(), we do not need to handle such conversion in the caller. The only challenge are those callers that wish to differentiate the error code between the nonblocking busy check and potentially blocking wait. Signed-off-by: Chris Wilson Cc: Lucas Stach Cc: Russell King Cc: Christian Gmeiner Reviewed-by: Daniel Vetter Acked-by: Lucas Stach --- drivers/gpu/drm/etnaviv/etnaviv_gem.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem.c b/drivers/gpu/drm/etnaviv/etnaviv_gem.c index 5ce3603e6eac..9ffca2478e02 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_gem.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem.c @@ -409,20 +409,16 @@ int etnaviv_gem_cpu_prep(struct drm_gem_object *obj, u32 op, struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); struct drm_device *dev = obj->dev; bool write = !!(op & ETNA_PREP_WRITE); - int ret; - - if (op & ETNA_PREP_NOSYNC) { - if (!reservation_object_test_signaled_rcu(etnaviv_obj->resv, - write)) - return -EBUSY; - } else { - unsigned long remain = etnaviv_timeout_to_jiffies(timeout); - - ret = reservation_object_wait_timeout_rcu(etnaviv_obj->resv, - write, true, remain); - if (ret <= 0) - return ret == 0 ? -ETIMEDOUT : ret; - } + unsigned long remain = + op & ETNA_PREP_NOSYNC ? 0 : etnaviv_timeout_to_jiffies(timeout); + long lret; + + lret = reservation_object_wait_timeout_rcu(etnaviv_obj->resv, + write, true, remain); + if (lret < 0) + return lret; + else if (lret == 0) + return remain == 0 ? -EBUSY : -ETIMEDOUT; if (etnaviv_obj->flags & ETNA_BO_CACHED) { if (!etnaviv_obj->sgt) {