From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH 2/3] drm/msm: add param to retrieve # of GPU faults (global) Date: Tue, 16 Apr 2019 18:30:25 -0700 Message-ID: <20190417013031.555-3-robdclark@gmail.com> References: <20190417013031.555-1-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190417013031.555-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: Rob Clark , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org RnJvbTogUm9iIENsYXJrIDxyb2JkY2xhcmtAY2hyb21pdW0ub3JnPgoKRm9yIEtIUl9yb2J1c3Ru ZXNzLCB1c2Vyc3BhY2Ugd2FudHMgdG8ga25vdyB0d28gdGhpbmdzLCB0aGUgY291bnQgb2YgR1BV CmZhdWx0cyBnbG9iYWxseSwgYW5kIHRoZSBjb3VudCBvZiBmYXVsdHMgYXR0cmlidXRlZCB0byBh IGdpdmVuIGNvbnRleHQuClRoaXMgcGF0Y2ggcHJvdmlkZWVzIHRoZSBmb3JtZXIsIGFuZCB0aGUg bmV4dCBwYXRjaCBwcm92aWRlcyB0aGUgbGF0dGVyLgoKU2lnbmVkLW9mZi1ieTogUm9iIENsYXJr IDxyb2JkY2xhcmtAY2hyb21pdW0ub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5v L2FkcmVub19ncHUuYyB8IDMgKysrCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuYyAgICAg ICAgICAgfCAzICsrKwogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmggICAgICAgICAgIHwg MyArKysKIGluY2x1ZGUvdWFwaS9kcm0vbXNtX2RybS5oICAgICAgICAgICAgICB8IDEgKwogNCBm aWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8v YWRyZW5vX2dwdS5jCmluZGV4IGZiZGY2ZjFjMjQ3ZS4uODQzNmNhYTQ1NDdmIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5jCkBAIC02NSw2ICs2NSw5IEBAIGludCBhZHJl bm9fZ2V0X3BhcmFtKHN0cnVjdCBtc21fZ3B1ICpncHUsIHVpbnQzMl90IHBhcmFtLCB1aW50NjRf dCAqdmFsdWUpCiAJY2FzZSBNU01fUEFSQU1fUFBfUEdUQUJMRToKIAkJKnZhbHVlID0gMDsKIAkJ cmV0dXJuIDA7CisJY2FzZSBNU01fUEFSQU1fRkFVTFRTOgorCQkqdmFsdWUgPSBncHUtPmdsb2Jh bF9mYXVsdHM7CisJCXJldHVybiAwOwogCWRlZmF1bHQ6CiAJCURCRygiJXM6IGludmFsaWQgcGFy YW06ICV1IiwgZ3B1LT5uYW1lLCBwYXJhbSk7CiAJCXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9ncHUuYwppbmRleCAxMGJhYmQxOGUyODYuLjE5NDg0N2EyMjBiNiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21f Z3B1LmMKQEAgLTQ0Myw2ICs0NDMsOSBAQCBzdGF0aWMgdm9pZCByZWNvdmVyX3dvcmtlcihzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJaWYgKHN1Ym1pdCkgewogCQlzdHJ1Y3QgdGFza19zdHJ1 Y3QgKnRhc2s7CiAKKwkJLyogSW5jcmVtZW50IHRoZSBmYXVsdCBjb3VudCAqLworCQlncHUtPmds b2JhbF9mYXVsdHMrKzsKKwogCQl0YXNrID0gZ2V0X3BpZF90YXNrKHN1Ym1pdC0+cGlkLCBQSURU WVBFX1BJRCk7CiAJCWlmICh0YXNrKSB7CiAJCQljb21tID0ga3N0cmR1cCh0YXNrLT5jb21tLCBH RlBfS0VSTkVMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5oIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmgKaW5kZXggY2ExNzA4NmY3MmM5Li4zZTkwNzhl YzMwMjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5oCkBAIC0xMDMsNiArMTAzLDkgQEAgc3RydWN0IG1z bV9ncHUgewogCS8qIGRvZXMgZ3B1IG5lZWQgaHdfaW5pdD8gKi8KIAlib29sIG5lZWRzX2h3X2lu aXQ7CiAKKwkvKiBudW1iZXIgb2YgR1BVIGhhbmdzIChmb3IgYWxsIGNvbnRleHRzKSAqLworCWlu dCBnbG9iYWxfZmF1bHRzOworCiAJLyogd29ya2VyIGZvciBoYW5kbGluZyBhY3RpdmUtbGlzdCBy ZXRpcmluZzogKi8KIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgcmV0aXJlX3dvcms7CiAKZGlmZiAtLWdp dCBhL2luY2x1ZGUvdWFwaS9kcm0vbXNtX2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9tc21fZHJt LmgKaW5kZXggYTlmZGNmMTY4OWNlLi4xNzhkN2I0MDdmM2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv dWFwaS9kcm0vbXNtX2RybS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vbXNtX2RybS5oCkBAIC03 NSw2ICs3NSw3IEBAIHN0cnVjdCBkcm1fbXNtX3RpbWVzcGVjIHsKICNkZWZpbmUgTVNNX1BBUkFN X0dNRU1fQkFTRSAgMHgwNgogI2RlZmluZSBNU01fUEFSQU1fTlJfUklOR1MgICAweDA3CiAjZGVm aW5lIE1TTV9QQVJBTV9QUF9QR1RBQkxFIDB4MDggIC8qID0+IDEgZm9yIHBlci1wcm9jZXNzIHBh Z2V0YWJsZXMsIGVsc2UgMCAqLworI2RlZmluZSBNU01fUEFSQU1fRkFVTFRTICAgICAweDA5CiAK IHN0cnVjdCBkcm1fbXNtX3BhcmFtIHsKIAlfX3UzMiBwaXBlOyAgICAgICAgICAgLyogaW4sIE1T TV9QSVBFX3ggKi8KLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZnJlZWRyZW5v 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=-8.8 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,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 E4676C10F14 for ; Wed, 17 Apr 2019 01:31:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B0D9A20821 for ; Wed, 17 Apr 2019 01:31:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="dyxr9/wC" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728555AbfDQBbP (ORCPT ); Tue, 16 Apr 2019 21:31:15 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:37280 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728486AbfDQBbP (ORCPT ); Tue, 16 Apr 2019 21:31:15 -0400 Received: by mail-pl1-f196.google.com with SMTP id w23so11210067ply.4 for ; Tue, 16 Apr 2019 18:31:14 -0700 (PDT) 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=3VeHkzSeZ7Vto22Racn1Wx16+TqtieD0Nqwetihugxk=; b=dyxr9/wCMrK3vhtXoUokeqrpdQGMXG2dbpYTVo7w1fKTsIXUM1xUFsUFQIlQr+FWdC BLHSRe1+bZ2fVvjqt8P+eAg6N5i0yVnqmt9apHDgFm5YkjJOT1atzZRflp2ZzsCfFNR1 4XFum9Pxk261qihV9bgZGdsxaCPtBD0yZxWWdwqcugxdAfKV6KAwoZgB2qpRpQS84rsy yiOSolEJXqn0aAKE8D6ZlROCDsUxDILgr57aVyPFP2Zyk1za2JR9cRti8iArTmG/Pnev 5edoBfvaWhQBBlNz93I+bj2/cTlUsPAh/axojs1h8lAtsIidqXhYW0siV6R/AVEo1fxO 3CgQ== 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=3VeHkzSeZ7Vto22Racn1Wx16+TqtieD0Nqwetihugxk=; b=AKluSDgX9OPZzf2HKDe5jRmYdaLBq5u6gQJ/Vu2BFMqnhWELcnlbj8DX/6nsxN5fKF +swgk2W1v0xQrZNmZfKSdf6VP5sRwM+EMCCxI9njIWDskwSBSUprPpcchDlRuUrgsJUw moJGxTi/CbIWnZOMOzjZrLcpvuwIkkzzg+b+lSfvxBT6jGKLH3zlrCrZEIjo+EXJU4R3 jIFryAYL3P5fhbujqHi1nWRhPFSNVXzmmLAoB2w17Ai6JN3/bxB3b5th/eGxiqOf3L5J GJhZRiOQz3FtjaNYjmBM31ukGSTvxWdEdqjtObaxr99WMNqigitl3hW1Y92Ymmmdrfnk NQVQ== X-Gm-Message-State: APjAAAXEUbHLe9/oM+WY7h4lDJCpt8oo2/pT19TgaK91X2NnV7sM3HKJ U59qkiJhRTUIDNFxm86rVb0= X-Google-Smtp-Source: APXvYqybr0xJ/grXjOZ4DY7aSwkf6G42yYeXPVrHMym7Az2agvkqBWdAvwy53I1nlXRn8VkzIaEteQ== X-Received: by 2002:a17:902:d70c:: with SMTP id w12mr86750848ply.198.1555464674541; Tue, 16 Apr 2019 18:31:14 -0700 (PDT) Received: from localhost ([2601:1c0:4501:a35a:719a:233b:28ab:5ad5]) by smtp.gmail.com with ESMTPSA id 20sm69954251pfn.131.2019.04.16.18.31.13 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 16 Apr 2019 18:31:13 -0700 (PDT) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, Rob Clark Subject: [PATCH 2/3] drm/msm: add param to retrieve # of GPU faults (global) Date: Tue, 16 Apr 2019 18:30:25 -0700 Message-Id: <20190417013031.555-3-robdclark@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190417013031.555-1-robdclark@gmail.com> References: <20190417013031.555-1-robdclark@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Message-ID: <20190417013025.pwF-Mk6wg6ewhEszWLjERejjKG_STXadhe2pocchDMw@z> From: Rob Clark For KHR_robustness, userspace wants to know two things, the count of GPU faults globally, and the count of faults attributed to a given context. This patch providees the former, and the next patch provides the latter. Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 3 +++ drivers/gpu/drm/msm/msm_gpu.c | 3 +++ drivers/gpu/drm/msm/msm_gpu.h | 3 +++ include/uapi/drm/msm_drm.h | 1 + 4 files changed, 10 insertions(+) diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c index fbdf6f1c247e..8436caa4547f 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c @@ -65,6 +65,9 @@ int adreno_get_param(struct msm_gpu *gpu, uint32_t param, uint64_t *value) case MSM_PARAM_PP_PGTABLE: *value = 0; return 0; + case MSM_PARAM_FAULTS: + *value = gpu->global_faults; + return 0; default: DBG("%s: invalid param: %u", gpu->name, param); return -EINVAL; diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c index 10babd18e286..194847a220b6 100644 --- a/drivers/gpu/drm/msm/msm_gpu.c +++ b/drivers/gpu/drm/msm/msm_gpu.c @@ -443,6 +443,9 @@ static void recover_worker(struct work_struct *work) if (submit) { struct task_struct *task; + /* Increment the fault count */ + gpu->global_faults++; + task = get_pid_task(submit->pid, PIDTYPE_PID); if (task) { comm = kstrdup(task->comm, GFP_KERNEL); diff --git a/drivers/gpu/drm/msm/msm_gpu.h b/drivers/gpu/drm/msm/msm_gpu.h index ca17086f72c9..3e9078ec3023 100644 --- a/drivers/gpu/drm/msm/msm_gpu.h +++ b/drivers/gpu/drm/msm/msm_gpu.h @@ -103,6 +103,9 @@ struct msm_gpu { /* does gpu need hw_init? */ bool needs_hw_init; + /* number of GPU hangs (for all contexts) */ + int global_faults; + /* worker for handling active-list retiring: */ struct work_struct retire_work; diff --git a/include/uapi/drm/msm_drm.h b/include/uapi/drm/msm_drm.h index a9fdcf1689ce..178d7b407f3a 100644 --- a/include/uapi/drm/msm_drm.h +++ b/include/uapi/drm/msm_drm.h @@ -75,6 +75,7 @@ struct drm_msm_timespec { #define MSM_PARAM_GMEM_BASE 0x06 #define MSM_PARAM_NR_RINGS 0x07 #define MSM_PARAM_PP_PGTABLE 0x08 /* => 1 for per-process pagetables, else 0 */ +#define MSM_PARAM_FAULTS 0x09 struct drm_msm_param { __u32 pipe; /* in, MSM_PIPE_x */ -- 2.20.1