From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH 1/4] drm/msm/gpu: add submit flag to hint which buffers should be dumped Date: Fri, 30 Nov 2018 10:00:39 -0500 Message-ID: <20181130150050.13762-2-robdclark@gmail.com> References: <20181130150050.13762-1-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181130150050.13762-1-robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: David Airlie , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Rob Clark , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Jordan Crouse , freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org VG8gbG93ZXIgQ1BVICBvdmVyaGVhZCwgZnV0dXJlIHVzZXJzcGFjZSB3aWxsIGJlIHN3aXRjaGlu ZyB0byBwaW5uaW5nCmlvdmEgYW5kIGF2b2lkaW5nIHRoZSB1c2Ugb2YgcmVsb2NzLCBhbmQgb25s eSBpbmNsdWRlIGNtZHMgdGFibGUgZW50cmllcwpmb3IgSUIxIGxldmVsIGNtZHN0cmVhbSAoYnV0 IG5vdCBJQjIgb3Igc3RhdGUtZ3JvdXBzKS4KClRoaXMgbGVhdmVzIHRoZSBrZXJuZWwgdW5zdXJl IHdoYXQgdG8gZHVtcCBmb3IgcmQvaGFuZ3JkIGNtZHN0cmVhbQpkdW1waW5nLiAgU28gYWRkIGEg TVNNX1NVQk1JVF9CT19EVU1QIGZsYWcgc28gdXNlcnNwYWNlIGNhbiBpbmRpY2F0ZQpidWZmZXJz IHRoYXQgY29udGFpbiBjbWRzdHJlYW0gKG9yIGFyZSBvdGhlcndpc2UgaW1wb3J0YW50IHRvIGR1 bXApLgoKU2lnbmVkLW9mZi1ieTogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbV9zdWJtaXQuYyB8ICA1ICsrKystCiBkcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9yZC5jICAgICAgICAgfCAxMyArKysrKysrKysrLS0tCiBpbmNsdWRl L3VhcGkvZHJtL21zbV9kcm0uaCAgICAgICAgICAgfCAgNSArKysrLQogMyBmaWxlcyBjaGFuZ2Vk LCAxOCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2dlbV9zdWJtaXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dl bV9zdWJtaXQuYwppbmRleCBkZGQ5NWEwNzhlYzQuLmVhYjYzODAxMWY0YyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtX3N1Ym1pdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbXNtX2dlbV9zdWJtaXQuYwpAQCAtMTE0LDggKzExNCwxMSBAQCBzdGF0aWMgaW50IHN1 Ym1pdF9sb29rdXBfb2JqZWN0cyhzdHJ1Y3QgbXNtX2dlbV9zdWJtaXQgKnN1Ym1pdCwKIAkJCXBh Z2VmYXVsdF9kaXNhYmxlKCk7CiAJCX0KIAorLyogYXQgbGVhc3Qgb25lIG9mIFJFQUQgYW5kL29y IFdSSVRFIGZsYWdzIHNob3VsZCBiZSBzZXQ6ICovCisjZGVmaW5lIE1BTkRBVE9SWV9GTEFHUyAo TVNNX1NVQk1JVF9CT19SRUFEIHwgTVNNX1NVQk1JVF9CT19XUklURSkKKwogCQlpZiAoKHN1Ym1p dF9iby5mbGFncyAmIH5NU01fU1VCTUlUX0JPX0ZMQUdTKSB8fAotCQkJIShzdWJtaXRfYm8uZmxh Z3MgJiBNU01fU1VCTUlUX0JPX0ZMQUdTKSkgeworCQkJIShzdWJtaXRfYm8uZmxhZ3MgJiBNQU5E QVRPUllfRkxBR1MpKSB7CiAJCQlEUk1fRVJST1IoImludmFsaWQgZmxhZ3M6ICV4XG4iLCBzdWJt aXRfYm8uZmxhZ3MpOwogCQkJcmV0ID0gLUVJTlZBTDsKIAkJCWdvdG8gb3V0X3VubG9jazsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX3JkLmMgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL21zbV9yZC5jCmluZGV4IDBjMmM4ZDJjNjMxZi4uOTBlOWQwYTQ4ZGMwIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9yZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v bXNtX3JkLmMKQEAgLTM0OCw2ICszNDgsMTIgQEAgc3RhdGljIHZvaWQgc25hcHNob3RfYnVmKHN0 cnVjdCBtc21fcmRfc3RhdGUgKnJkLAogCW1zbV9nZW1fcHV0X3ZhZGRyKCZvYmotPmJhc2UpOwog fQogCitzdGF0aWMgYm9vbAorc2hvdWxkX2R1bXAoc3RydWN0IG1zbV9nZW1fc3VibWl0ICpzdWJt aXQsIGludCBpZHgpCit7CisJcmV0dXJuIHJkX2Z1bGwgfHwgKHN1Ym1pdC0+Ym9zW2lkeF0uZmxh Z3MgJiBNU01fU1VCTUlUX0JPX0RVTVApOworfQorCiAvKiBjYWxsZWQgdW5kZXIgc3RydWN0X211 dGV4ICovCiB2b2lkIG1zbV9yZF9kdW1wX3N1Ym1pdChzdHJ1Y3QgbXNtX3JkX3N0YXRlICpyZCwg c3RydWN0IG1zbV9nZW1fc3VibWl0ICpzdWJtaXQsCiAJCWNvbnN0IGNoYXIgKmZtdCwgLi4uKQpA QCAtMzg5LDE1ICszOTUsMTYgQEAgdm9pZCBtc21fcmRfZHVtcF9zdWJtaXQoc3RydWN0IG1zbV9y ZF9zdGF0ZSAqcmQsIHN0cnVjdCBtc21fZ2VtX3N1Ym1pdCAqc3VibWl0LAogCiAJcmRfd3JpdGVf c2VjdGlvbihyZCwgUkRfQ01ELCBtc2csIEFMSUdOKG4sIDQpKTsKIAotCWZvciAoaSA9IDA7IHJk X2Z1bGwgJiYgaSA8IHN1Ym1pdC0+bnJfYm9zOyBpKyspCi0JCXNuYXBzaG90X2J1ZihyZCwgc3Vi bWl0LCBpLCAwLCAwKTsKKwlmb3IgKGkgPSAwOyBpIDwgc3VibWl0LT5ucl9ib3M7IGkrKykKKwkJ aWYgKHNob3VsZF9kdW1wKHN1Ym1pdCwgaSkpCisJCQlzbmFwc2hvdF9idWYocmQsIHN1Ym1pdCwg aSwgMCwgMCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgc3VibWl0LT5ucl9jbWRzOyBpKyspIHsKIAkJ dWludDY0X3QgaW92YSA9IHN1Ym1pdC0+Y21kW2ldLmlvdmE7CiAJCXVpbnQzMl90IHN6ZCAgPSBz dWJtaXQtPmNtZFtpXS5zaXplOyAvKiBpbiBkd29yZHMgKi8KIAogCQkvKiBzbmFwc2hvdCBjbWRz dHJlYW0gYm8ncyAoaWYgd2UgaGF2ZW4ndCBhbHJlYWR5KTogKi8KLQkJaWYgKCFyZF9mdWxsKSB7 CisJCWlmICghc2hvdWxkX2R1bXAoc3VibWl0LCBpKSkgewogCQkJc25hcHNob3RfYnVmKHJkLCBz dWJtaXQsIHN1Ym1pdC0+Y21kW2ldLmlkeCwKIAkJCQkJc3VibWl0LT5jbWRbaV0uaW92YSwgc3pk ICogNCk7CiAJCX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vbXNtX2RybS5oIGIvaW5j bHVkZS91YXBpL2RybS9tc21fZHJtLmgKaW5kZXggYzA2ZDBhNWJkZDgwLi4zYzNhZjkyYzRiM2Ug MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vbXNtX2RybS5oCisrKyBiL2luY2x1ZGUvdWFw aS9kcm0vbXNtX2RybS5oCkBAIC0xODgsOCArMTg4LDExIEBAIHN0cnVjdCBkcm1fbXNtX2dlbV9z dWJtaXRfY21kIHsKICAqLwogI2RlZmluZSBNU01fU1VCTUlUX0JPX1JFQUQgICAgICAgICAgICAg MHgwMDAxCiAjZGVmaW5lIE1TTV9TVUJNSVRfQk9fV1JJVEUgICAgICAgICAgICAweDAwMDIKKyNk ZWZpbmUgTVNNX1NVQk1JVF9CT19EVU1QICAgICAgICAgICAgIDB4MDAwNAogCi0jZGVmaW5lIE1T TV9TVUJNSVRfQk9fRkxBR1MgICAgICAgICAgICAoTVNNX1NVQk1JVF9CT19SRUFEIHwgTVNNX1NV Qk1JVF9CT19XUklURSkKKyNkZWZpbmUgTVNNX1NVQk1JVF9CT19GTEFHUyAgICAgICAgICAgIChN U01fU1VCTUlUX0JPX1JFQUQgfCBcCisJCQkJCU1TTV9TVUJNSVRfQk9fV1JJVEUgfCBcCisJCQkJ CU1TTV9TVUJNSVRfQk9fRFVNUCkKIAogc3RydWN0IGRybV9tc21fZ2VtX3N1Ym1pdF9ibyB7CiAJ X191MzIgZmxhZ3M7ICAgICAgICAgIC8qIGluLCBtYXNrIG9mIE1TTV9TVUJNSVRfQk9feCAqLwot LSAKMi4xOS4yCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K 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=-6.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,UNWANTED_LANGUAGE_BODY,USER_AGENT_GIT 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 023F1C04EB8 for ; Fri, 30 Nov 2018 15:01:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A6A2D20834 for ; Fri, 30 Nov 2018 15:01:04 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NHRX0Xqw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A6A2D20834 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.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 S1726802AbeLACKi (ORCPT ); Fri, 30 Nov 2018 21:10:38 -0500 Received: from mail-qt1-f196.google.com ([209.85.160.196]:46874 "EHLO mail-qt1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726127AbeLACKi (ORCPT ); Fri, 30 Nov 2018 21:10:38 -0500 Received: by mail-qt1-f196.google.com with SMTP id y20so6157058qtm.13; Fri, 30 Nov 2018 07:01:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=FIYmFGHlDtXLaqHVE1ZXmEz+PUDSoNeUl/RQokZJ9SA=; b=NHRX0XqwoV0qaHxOIQkO13UEtMbdfOiJtFt+lrARDujAjtoQkyoJUMwsGajFB3LsB4 R+D5mJlZIGMV24GMv9tFRmnkEIm4Qso2W7lxvSFpQSzjRROqX7xPw5f6qK+bOcytmWBa v5qauvXB84Cwkw5EzzHceFgNHCJvMOnuFmvP+t0pqab/sS2RD+3aEc2Z0umSco5VpLne Aeh9OpJq6MGn5PThuuMu+UwZldybW7wBUPq4Dx9rUPl71XE1w1h5nJulpOQ17Iol2Lz1 wbnk/p50YgdzY/GlOVhCY6PjoB8UANbIRsPme7YmkmMpaoUn2ffx00ThWwNtKV31+ySO I/bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=FIYmFGHlDtXLaqHVE1ZXmEz+PUDSoNeUl/RQokZJ9SA=; b=U3sfbKXvtgyAXpL6Y+uKFJZyFe3RxeXzIO8N4PvviB5B/2l9YGimJ2MuUYHWXqg2cB Xocz6HangMIuzMILFa5l5JRm5LvyK40yO8pnpZmn55CFoCl4pJkUhBuZWCKdxbME0OCx OSRSHl3NgjjxG59lZ/CW2EK6ib/kkZefbls0Q04hnm9W78F35r/71LzNGy7E3uqknhWq EGLtv5A4kN8C5ppYr+F0RA4OJ43Gl6PKSkOBkdWFKq2jgctdXMfU9tLuv8SykldE3CAw RwnURPSabXAImJxSEFvEdc55+FP2RhkXSjIDpngpZ2+rj9WCLtIhN+ieKVKBmXZhmkUo ougw== X-Gm-Message-State: AA+aEWZyzkOUs585b5ZU5An8QYif0U9I2PdQrU0ObnsxCKLosynVbA2n 6bRf3nfwQuU/oXdkY49qQXlxbUpx X-Google-Smtp-Source: AFSGD/WX6xAvGVT8Jgdyw9E/DU9IGPs9fF24IOFE8NkNFreFxGl1ly9vxBxLHC6Y9d1ZHPxNoFkdUA== X-Received: by 2002:ac8:3810:: with SMTP id q16mr5433033qtb.91.1543590061445; Fri, 30 Nov 2018 07:01:01 -0800 (PST) Received: from localhost ([144.121.20.162]) by smtp.gmail.com with ESMTPSA id l15sm2377586qtr.25.2018.11.30.07.01.00 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 30 Nov 2018 07:01:00 -0800 (PST) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: Jordan Crouse , Rob Clark , David Airlie , linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/4] drm/msm/gpu: add submit flag to hint which buffers should be dumped Date: Fri, 30 Nov 2018 10:00:39 -0500 Message-Id: <20181130150050.13762-2-robdclark@gmail.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20181130150050.13762-1-robdclark@gmail.com> References: <20181130150050.13762-1-robdclark@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org To lower CPU overhead, future userspace will be switching to pinning iova and avoiding the use of relocs, and only include cmds table entries for IB1 level cmdstream (but not IB2 or state-groups). This leaves the kernel unsure what to dump for rd/hangrd cmdstream dumping. So add a MSM_SUBMIT_BO_DUMP flag so userspace can indicate buffers that contain cmdstream (or are otherwise important to dump). Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/msm_gem_submit.c | 5 ++++- drivers/gpu/drm/msm/msm_rd.c | 13 ++++++++++--- include/uapi/drm/msm_drm.h | 5 ++++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c index ddd95a078ec4..eab638011f4c 100644 --- a/drivers/gpu/drm/msm/msm_gem_submit.c +++ b/drivers/gpu/drm/msm/msm_gem_submit.c @@ -114,8 +114,11 @@ static int submit_lookup_objects(struct msm_gem_submit *submit, pagefault_disable(); } +/* at least one of READ and/or WRITE flags should be set: */ +#define MANDATORY_FLAGS (MSM_SUBMIT_BO_READ | MSM_SUBMIT_BO_WRITE) + if ((submit_bo.flags & ~MSM_SUBMIT_BO_FLAGS) || - !(submit_bo.flags & MSM_SUBMIT_BO_FLAGS)) { + !(submit_bo.flags & MANDATORY_FLAGS)) { DRM_ERROR("invalid flags: %x\n", submit_bo.flags); ret = -EINVAL; goto out_unlock; diff --git a/drivers/gpu/drm/msm/msm_rd.c b/drivers/gpu/drm/msm/msm_rd.c index 0c2c8d2c631f..90e9d0a48dc0 100644 --- a/drivers/gpu/drm/msm/msm_rd.c +++ b/drivers/gpu/drm/msm/msm_rd.c @@ -348,6 +348,12 @@ static void snapshot_buf(struct msm_rd_state *rd, msm_gem_put_vaddr(&obj->base); } +static bool +should_dump(struct msm_gem_submit *submit, int idx) +{ + return rd_full || (submit->bos[idx].flags & MSM_SUBMIT_BO_DUMP); +} + /* called under struct_mutex */ void msm_rd_dump_submit(struct msm_rd_state *rd, struct msm_gem_submit *submit, const char *fmt, ...) @@ -389,15 +395,16 @@ void msm_rd_dump_submit(struct msm_rd_state *rd, struct msm_gem_submit *submit, rd_write_section(rd, RD_CMD, msg, ALIGN(n, 4)); - for (i = 0; rd_full && i < submit->nr_bos; i++) - snapshot_buf(rd, submit, i, 0, 0); + for (i = 0; i < submit->nr_bos; i++) + if (should_dump(submit, i)) + snapshot_buf(rd, submit, i, 0, 0); for (i = 0; i < submit->nr_cmds; i++) { uint64_t iova = submit->cmd[i].iova; uint32_t szd = submit->cmd[i].size; /* in dwords */ /* snapshot cmdstream bo's (if we haven't already): */ - if (!rd_full) { + if (!should_dump(submit, i)) { snapshot_buf(rd, submit, submit->cmd[i].idx, submit->cmd[i].iova, szd * 4); } diff --git a/include/uapi/drm/msm_drm.h b/include/uapi/drm/msm_drm.h index c06d0a5bdd80..3c3af92c4b3e 100644 --- a/include/uapi/drm/msm_drm.h +++ b/include/uapi/drm/msm_drm.h @@ -188,8 +188,11 @@ struct drm_msm_gem_submit_cmd { */ #define MSM_SUBMIT_BO_READ 0x0001 #define MSM_SUBMIT_BO_WRITE 0x0002 +#define MSM_SUBMIT_BO_DUMP 0x0004 -#define MSM_SUBMIT_BO_FLAGS (MSM_SUBMIT_BO_READ | MSM_SUBMIT_BO_WRITE) +#define MSM_SUBMIT_BO_FLAGS (MSM_SUBMIT_BO_READ | \ + MSM_SUBMIT_BO_WRITE | \ + MSM_SUBMIT_BO_DUMP) struct drm_msm_gem_submit_bo { __u32 flags; /* in, mask of MSM_SUBMIT_BO_x */ -- 2.19.2